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).