Esta guía explica cómo funciona la cobertura de código en el proyecto ImagePickerKMP y cómo gestionar los umbrales de cobertura.
- Cobertura de Líneas: 4% (umbral mínimo: 4%)
- Cobertura de Ramas: 0% (umbral mínimo: 0%)
El proyecto usa JaCoCo para aplicar umbrales mínimos de cobertura:
- Cobertura de Líneas: Mínimo 4% (configurable en
library/build.gradle.kts) - Cobertura de Ramas: Mínimo 0% (configurable en
library/build.gradle.kts)
Enfócate en probar las clases de lógica principal:
// Ejemplo: Agregar tests para ImageProcessor
@Test
fun `test image processing with different formats`() {
// Probar lógica de procesamiento de imágenes
}Una vez que el testing de Compose esté configurado correctamente, agrega tests para componentes UI:
@Test
fun `test image picker launcher composable`() {
// Probar componentes UI
}Agrega tests para implementaciones específicas de Android e iOS.
./gradlew jacocoTestReport./gradlew jacocoTestCoverageVerificationAbre library/build/reports/jacoco/jacocoTestReport/html/index.html en tu navegador.
Para aumentar los umbrales de cobertura:
-
Aumenta gradualmente los umbrales en
library/build.gradle.kts:minimum = "0.10".toBigDecimal() // 10% cobertura de líneas minimum = "0.05".toBigDecimal() // 5% cobertura de ramas
-
Agrega tests para cumplir con los nuevos umbrales.
-
Repite hasta alcanzar tu cobertura objetivo (ej: 80% líneas, 70% ramas).
- La cobertura se verifica automáticamente en CI
- Los reportes se suben a Codecov
- Los comentarios en PR muestran resumen de cobertura
- Los badges de cobertura se actualizan automáticamente
- Cobertura de Líneas: 20%
- Cobertura de Ramas: 10%
- Cobertura de Líneas: 50%
- Cobertura de Ramas: 30%
- Cobertura de Líneas: 80%
- Cobertura de Ramas: 70%
- Prueba la Lógica Principal Primero: Enfócate en lógica de negocio y clases de datos
- Prueba Casos de Error: Asegúrate de que el manejo de errores esté cubierto
- Prueba Casos Extremos: Cubre condiciones límite
- Mantén Tests Simples: Escribe tests legibles y mantenibles
- Usa Nombres Descriptivos: Haz que los nombres de los tests expliquen qué prueban
- Verifica si el nuevo código está siendo ejecutado por los tests
- Confirma que los archivos de test estén en el source set correcto
- Asegúrate de que los tests se estén ejecutando realmente
- Baja los umbrales temporalmente
- Agrega más tests gradualmente
- Enfócate en áreas de alto impacto primero
- Verifica si el nuevo código está cubierto
- Confirma que los valores de umbral sean razonables
- Agrega tests para código no cubierto