mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-06-11 02:33:10 +08:00
Adds a complete Spanish translation of the ECC documentation under docs/es/, mirroring the Turkish (docs/tr/) translation in scope. 141 files covering agents, commands, rules, skills, contexts, examples, and core docs. Updates root README.md with the Spanish language link. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
74 lines
3.1 KiB
Markdown
74 lines
3.1 KiB
Markdown
---
|
|
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
|
|
|
|
1. Ejecutar el comando de cobertura
|
|
2. Parsear la salida (resumen JSON o salida del terminal)
|
|
3. Listar archivos **por debajo del 80% de cobertura**, ordenados del peor al mejor
|
|
4. 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:
|
|
|
|
1. **Ruta feliz** — Funcionalidad principal con entradas válidas
|
|
2. **Manejo de errores** — Entradas inválidas, datos faltantes, fallos de red
|
|
3. **Casos límite** — Arrays vacíos, null/undefined, valores límite (0, -1, MAX_INT)
|
|
4. **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
|
|
|
|
1. Ejecutar la suite de pruebas completa — todas las pruebas deben pasar
|
|
2. Re-ejecutar la cobertura — verificar mejora
|
|
3. 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
|