d48cda4081
CI / Test (ubuntu-latest, Node 18.x, bun) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, npm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, pnpm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, yarn) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 20.x, bun) (push) Failing after 17m13s
CI / Test (ubuntu-latest, Node 20.x, npm) (push) Failing after 18m42s
CI / Test (ubuntu-latest, Node 20.x, pnpm) (push) Failing after 15m0s
CI / Test (ubuntu-latest, Node 20.x, yarn) (push) Failing after 49m44s
CI / Test (ubuntu-latest, Node 22.x, bun) (push) Failing after 51m55s
CI / Test (ubuntu-latest, Node 22.x, pnpm) (push) Failing after 21m57s
CI / Test (ubuntu-latest, Node 22.x, npm) (push) Failing after 37m39s
CI / Test (ubuntu-latest, Node 22.x, yarn) (push) Failing after 34m7s
CI / Validate Components (push) Failing after 37m15s
CI / Python Tests (push) Failing after 10m1s
CI / Security Scan (push) Failing after 10m1s
CI / Lint (push) Failing after 17m12s
CI / Coverage (push) Failing after 20m19s
CI / Test (macos-latest, Node 18.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, yarn) (push) Has been cancelled
3.1 KiB
3.1 KiB
description
| description |
|---|
| Analizar la cobertura, identificar brechas y generar pruebas faltantes hacia el umbral objetivo. |
Cobertura de Pruebas
Analizar la cobertura de pruebas, identificar brechas y generar las pruebas faltantes para alcanzar 80%+ de cobertura.
Paso 1: Detectar el Framework de Pruebas
| Indicador | Comando de Cobertura |
|---|---|
jest.config.* o package.json jest |
npx jest --coverage --coverageReporters=json-summary |
vitest.config.* |
npx vitest run --coverage |
pytest.ini / pyproject.toml pytest |
pytest --cov=src --cov-report=json |
Cargo.toml |
cargo llvm-cov --json |
pom.xml con JaCoCo |
mvn test jacoco:report |
go.mod |
go test -coverprofile=coverage.out ./... |
Paso 2: Analizar el Reporte de Cobertura
- Ejecutar el comando de cobertura
- Parsear la salida (resumen JSON o salida del terminal)
- Listar archivos por debajo del 80% de cobertura, ordenados del peor al mejor
- Para cada archivo con cobertura insuficiente, identificar:
- Funciones o métodos no probados
- Cobertura de ramas faltante (if/else, switch, rutas de error)
- Código muerto que infla el denominador
Paso 3: Generar Pruebas Faltantes
Para cada archivo con cobertura insuficiente, generar pruebas siguiendo esta prioridad:
- Ruta feliz — Funcionalidad principal con entradas válidas
- Manejo de errores — Entradas inválidas, datos faltantes, fallos de red
- Casos límite — Arrays vacíos, null/undefined, valores límite (0, -1, MAX_INT)
- Cobertura de ramas — Cada if/else, case de switch, ternario
Reglas de Generación de Pruebas
- Colocar pruebas adyacentes al fuente:
foo.ts→foo.test.ts(o convención del proyecto) - Usar patrones de prueba existentes del proyecto (estilo de import, librería de afirmaciones, enfoque de mocking)
- Mockear dependencias externas (base de datos, APIs, sistema de archivos)
- Cada prueba debe ser independiente — sin estado mutable compartido entre pruebas
- Nombrar las pruebas descriptivamente:
test_create_user_with_duplicate_email_returns_409
Paso 4: Verificar
- Ejecutar la suite de pruebas completa — todas las pruebas deben pasar
- Re-ejecutar la cobertura — verificar mejora
- Si aún está por debajo del 80%, repetir el Paso 3 para las brechas restantes
Paso 5: Reportar
Mostrar comparación antes/después:
Reporte de Cobertura
──────────────────────────────
Archivo Antes Después
src/services/auth.ts 45% 88%
src/utils/validation.ts 32% 82%
──────────────────────────────
Total: 67% 84% ✓
Áreas de Enfoque
- Funciones con ramificación compleja (alta complejidad ciclomática)
- Manejadores de errores y bloques catch
- Funciones de utilidad usadas en toda la base de código
- Manejadores de endpoints de API (flujo solicitud → respuesta)
- Casos límite: null, undefined, string vacío, array vacío, cero, números negativos