📚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