es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué la herramienta de cobertura JaCoCo reporta un 100% de cobertura?

Añadí a mi proyecto JaCoCo editando el archivo build.gradle a nivel de aplicación:

plugins{
    ...
    id 'jacoco'
}

jacoco {
   toolVersion = "0.8.7"
}

buildTypes {

    debug {
        testCoverageEnabled = true
    }
}

android {
   //...
}

dependencies{
  ...
}

configurations.all{
    resolutionStrategy {
        eachDependency { details ->
            if('org.jacoco' == details.requested.group) {
                details.useVersion "0.8.7"
            }
        }
   }
}

Realmente no tengo pruebas en mi proyecto, así que esperaba una cobertura muy baja.

Pero al ejecutar gradlew createDebugCoverageReport, ¿se obtuvo una cobertura del 100%? Esperaba un 5% o menos, ya que no he escrito ninguna prueba. ¿Qué está mal ahí?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en Android, Gradle, JaCoCo y Android-JaCoCo, permíteme explicarte cuál podría ser la razón para obtener una cobertura del 100% incluso cuando no hay pruebas en el proyecto.

    JaCoCo es una herramienta de cobertura de código que mide cuánto de tu código está cubierto por tus pruebas. Cuando habilitas testCoverageEnabled para un tipo de compilación, se instrumenta tu código y se generan datos de ejecución (archivos .exec) durante la ejecución de las pruebas.

    Si ejecutas gradlew createDebugCoverageReport sin tener ninguna prueba, aún se generará un informe de cobertura basado en los archivos .exec generados durante la compilación. Dado que no hubo pruebas, los archivos .exec mostrarán que no se ejecutaron líneas de código, lo que resultará en una cobertura del 100%.

    Para obtener un informe preciso de cobertura, debes escribir pruebas y ejecutarlas utilizando testCoverageEnabled. Esto asegurará que JaCoCo capture los datos de cobertura de tu código de manera correcta.

    En resumen, ejecutar gradlew createDebugCoverageReport sin pruebas no te dará un informe preciso de cobertura. Necesitas escribir pruebas y ejecutarlas con testCoverageEnabled para obtener un informe de cobertura significativo.

Comments are closed.