Mocha en containers: cómo correr pruebas sin instalar nada
Clase 5 de 21 • Curso Profesional de DevOps
Contenido del curso
Containers y ambientes de desarrollo
Pruebas
Integración Continua
Despliegue Continuo
Reliability
Cierre del curso
Ejecutar pruebas dentro del mismo entorno donde corre la aplicación es clave para evitar sorpresas. Aquí verás cómo organizar un directorio de pruebas y configurar package.json en Node para correr Mocha desde el container, sin instalaciones manuales ni dependencias externas.
¿Por qué ejecutar pruebas dentro del container?
Montar el container con todo lo necesario para probar y desplegar garantiza que las pruebas usan exactamente lo que hay dentro del entorno. Así evitas “vueltas” para instalar herramientas y aseguras que el binario o el framework de pruebas esté disponible al ejecutar.
- Usa un directorio de pruebas dedicado. Facilita simular una batería de casos.
- Combina pruebas de unidad y pruebas de integración. Aunque el ejemplo tenga tres de unidad, se puede escalar a una batería mayor.
- Corre las pruebas desde el container. No dependas del host para instalar o ejecutar.
- Deja el container con lo suficiente para producción y para testearse a sí mismo.
¿Cómo configurar package.json en Node para Mocha?
En Node, la sección scripts de package.json permite definir un comando para las pruebas. El ponente usa un script llamado test-mocha que ejecuta Mocha, instalada en las dev dependencies. Así, al construir el container, el binario de Mocha queda disponible dentro del entorno.
{
"scripts": {
"test-mocha": "mocha"
}
}
- Define el script en scripts y ejecútalo desde el container.
- Instala Mocha en las dev dependencies para que el binario esté dentro del container.
- Evita depender de herramientas del host; todo vive en el entorno de ejecución.
¿Qué significa instalar Mocha en dev dependencies?
Colocar Mocha en las dev dependencies implica que es necesaria para correr pruebas, no para la ejecución en producción. Al construir el container, se incluye la herramienta y se garantiza que el comando del script funcione sin pasos adicionales.
- La herramienta de pruebas es parte del proyecto.
- El binario está disponible en el entorno de ejecución.
- No se requieren instalaciones manuales para testear.
¿Qué buenas prácticas aplicar en cualquier lenguaje?
Aunque el ejemplo es con Node, la idea aplica a todo lenguaje: si usas un framework para pruebas, inclúyelo dentro del container y expón un comando claro para ejecutarlas.
- Incluye el framework de pruebas en las dependencias de desarrollo del proyecto.
- Asegura que el binario esté dentro del container.
- Provee un comando único para correr la batería de pruebas.
- Mantén el entorno listo para producción y para autoverificación.
¿Te gustaría comentar cómo organizas tu directorio de pruebas o qué framework usas dentro del container?