📚Módulo 6: Técnicas avanzadas en Karma
🔧 6.1. Configuración personalizada del entorno de pruebas
Karma permite personalizar muchos aspectos del entorno de pruebas para adaptarse mejor a las necesidades de tu proyecto. Puedes ajustar:
Ejecución en múltiples navegadores: Ejecuta pruebas en distintos navegadores simultáneamente (Chrome, Firefox, Edge, etc.).
Headless testing: Ejecutar pruebas sin interfaz gráfica, ideal para entornos de CI/CD.
Ejecución selectiva de pruebas: Definir qué pruebas se ejecutarán en base a patrones de archivos.
Ejemplo de configuración en Karma para múltiples navegadores y headless:
module.exports = function (config: any) {
config.set({
frameworks: ["jasmine", "@angular-devkit/build-angular"], // Incluimos Jasmine y Angular
files: ["src/**/*.spec.ts"], // Ruta de los archivos de pruebas
// Ejecutar en múltiples navegadores
browsers: ["Chrome", "Firefox", "Edge"],
// Modo headless para Chrome (sin interfaz gráfica)
customLaunchers: {
ChromeHeadless: {
base: "Chrome",
flags: [
"--headless",
"--disable-gpu",
"--no-sandbox",
"--disable-dev-shm-usage",
],
},
},
// Reportes de cobertura
reporters: ["progress", "coverage"],
preprocessors: {
"src/**/*.spec.ts": ["coverage"], // Añadimos cobertura de código a los archivos de prueba
},
// Directorio de los reportes de cobertura
coverageReporter: {
type: "html",
dir: "coverage/",
},
singleRun: true, // Ejecuta una sola vez y finaliza (útil en CI)
});
};🚀 6.2. Karma y CI/CD (Integración continua)
Karma se integra fácilmente con herramientas de CI/CD como Jenkins, GitLab CI, Travis CI o CircleCI. En estos entornos, es importante ejecutar las pruebas en modo headless para evitar la necesidad de abrir un navegador gráfico. Ejemplo de integración en GitLab CI:
Añade un archivo .gitlab-ci.yml en la raíz de tu proyecto Angular:
📊 6.3. Generación de reportes avanzados con Karma
Karma tiene soporte para generar reportes avanzados, que pueden ser utilizados en procesos de integración continua o para verificar la calidad del código. Algunos reportes comunes incluyen:
Ejemplo de configuración de reportes en Karma:
🏃♂️ 6.4. Estrategias para acelerar las pruebas con Karma
En proyectos grandes, ejecutar todas las pruebas puede ser lento. Karma ofrece varias estrategias para acelerar las pruebas:
Ejemplo de ejecución paralela:
Ejemplo de ejecución selectiva de pruebas:
Puedes utilizar patrones de archivos para ejecutar solo las pruebas necesarias. Por ejemplo, si solo deseas ejecutar las pruebas de los servicios:
Última actualización