Cómo ver informes de cobertura de código

El complemento de Gradle para Android puede crear informes de cobertura de código que realicen un seguimiento del porcentaje de código que abarcan tus 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 (unitaria y de instrumentación) y 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, debes establecer enableAndroidTestCoverage y enableUnitTestCoverage en true en los archivos de compilación a nivel del módulo para cada variante de la que desees 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 a nivel del 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 de 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 unificados de cobertura del código

Puedes generar informes unificados de cobertura de código 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 y de instrumentación), módulos y variantes de compilación. Esto proporciona una vista integral de la cobertura del código de tu proyecto en un solo panel.

Requisitos previos

  • Complemento de Android para Gradle 9.2.0-alpha07 o una versión posterior

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, que 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 los módulos de la app y los módulos de biblioteca con la publicación habilitada. path-to-your-project/module-name/build/reports/aggregated_code_coverage_html_report/

En la página de destino del informe HTML generado, se muestra un resumen general de todos los módulos. Puedes explorar en detalle 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 el resaltado de 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).