Cómo ver informes de cobertura de código

El complemento de Android para Gradle puede crear informes de cobertura de código que hacen un seguimiento del porcentaje de tu código que cubren las pruebas. En esta página, se describe cómo habilitar la generación de informes de cobertura y generar informes.

Puedes generar informes de cobertura para cada tipo de prueba (unidades e instrumentación) para cada variante. También puedes generar informes de cobertura unificados en diferentes tipos de pruebas, módulos y variantes de compilación.

Habilita la cobertura de código

Para habilitar la cobertura de código, configura enableAndroidTestCoverage y enableUnitTestCoverage como true en los archivos de compilación de nivel de módulo para cada variante de la que deseas obtener informes de cobertura:

Kotlin

android {
    // ...
    buildTypes {
        debug {
            // Enable coverage for unit tests
            enableUnitTestCoverage = true
            // Enable coverage for instrumentation tests
            enableAndroidTestCoverage = true
        }
    }
}

Groovy

android {
    // ...
    buildTypes {
        debug {
            // Enable coverage for unit tests
            enableUnitTestCoverage true
            // Enable coverage for instrumentation tests
            enableAndroidTestCoverage true
        }
    }
}

Cambia la versión de Jacoco (opcional)

AGP aplica Jacoco automáticamente cuando habilitas la cobertura en tus módulos. Sin embargo, si necesitas usar una versión específica de Jacoco, puedes especificarla en el archivo de compilación de nivel de módulo:

Kotlin

android {
    jacoco {
        version = "JACOCO_VERSION"
    }
}

Groovy

android {
    jacoco {
        version = 'JACOCO_VERSION'
    }
}

Genera informes de cobertura específicos de la variante

Para generar informes de cobertura solo para pruebas de unidades o solo para pruebas instrumentadas para una variante específica, ejecuta las tareas correspondientes.

Tipo de prueba Comando Ubicación desde la que se informó
Pruebas de unidades ./gradlew :module-name:createVariantNameUnitTestCoverageReport path-to-your-project/module-name/build/reports/coverage/test/variant/index.html
Pruebas instrumentadas ./gradlew :module-name:createVariantNameAndroidTestCoverageReport path-to-your-project/module-name/build/reports/coverage/androidTest/variant/connected/index.html

Genera informes de cobertura de código unificados

Puedes generar informes de cobertura de código unificados con las tareas de Gradle createCoverageReport y createAggregatedCoverageReport. Puedes usar estas tareas para generar un solo informe HTML que consolide los datos de cobertura de diferentes tipos de pruebas (unidades e instrumentación), módulos y variantes de compilación. Esto proporciona una vista integral de la cobertura de código de tu proyecto en un solo panel.

Requisitos previos

  • Complemento de Android para Gradle 9.2.0-alpha07 o una versión más reciente

Para generar un informe unificado, ejecuta una de las siguientes tareas desde la línea de comandos:

Alcance de la cobertura Comando Descripción Ubicación desde la que se informó
Módulo actual ./gradlew :module-name:createCoverageReport Genera un informe de cobertura unificado para el módulo actual y combina datos de todos los tipos de pruebas. path-to-your-project/module-name/build/reports/code_coverage_html_report/
Módulo actual y dependencias ./gradlew :module-name:createAggregatedCoverageReport Genera un informe de cobertura unificado para el módulo actual y todas sus dependencias. Esta tarea está disponible para módulos de apps y módulos de bibliotecas con la publicación habilitada. path-to-your-project/module-name/build/reports/aggregated_code_coverage_html_report/

La página de destino del informe HTML generado muestra un resumen de alto nivel de todos los módulos. Puedes desglosar desde el módulo hasta el paquete, desde el paquete hasta la clase y desde la clase hasta el archivo fuente. Haz clic en cualquier archivo para ver el código con resaltado para la cobertura de líneas y ramas:

  • Verde: Líneas cubiertas
  • Rojo: Líneas no cubiertas
  • Amarillo: Cobertura parcial (se omitieron algunas instrucciones o ramas)