O Plug-in do Android para Gradle pode criar relatórios de cobertura de código que rastreiam a porcentagem do código coberta pelos testes. Esta página descreve como ativar a geração de relatórios de cobertura e gerar relatórios.
É possível gerar relatórios de cobertura para cada tipo de teste (unidade e instrumentação) para cada variante. Também é possível gerar relatórios de cobertura unificados em diferentes tipos de teste, módulos e variantes de build.
Ativar a cobertura de código
A cobertura de código precisa ser ativada definindo enableAndroidTestCoverage e enableUnitTestCoverage como true nos arquivos de build do módulo para cada variante em que você quer gerar relatórios 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 } } }
Mudar a versão do Jacoco (opcional)
O AGP aplica o Jacoco automaticamente quando você ativa a cobertura nos módulos. No entanto, se você precisar usar uma versão específica do Jacoco, especifique-a no arquivo de build do módulo:
Kotlin
android { jacoco { version = "JACOCO_VERSION" } }
Groovy
android { jacoco { version = 'JACOCO_VERSION' } }
Gerar relatórios de cobertura específicos da variante
Para gerar relatórios de cobertura apenas para testes de unidade ou apenas para testes instrumentados de uma variante específica, execute as tarefas correspondentes.
| Tipo de teste | Comando | Local do relatório |
|---|---|---|
| Testes de unidade | ./gradlew :module-name:createVariantNameUnitTestCoverageReport |
path-to-your-project/module-name/build/reports/coverage/test/variant/index.html |
| Testes instrumentados | ./gradlew :module-name:createVariantNameAndroidTestCoverageReport |
path-to-your-project/module-name/build/reports/coverage/androidTest/variant/connected/index.html |
Gerar relatórios de cobertura de código unificados
É possível gerar relatórios de cobertura de código unificados usando as tarefas do Gradle createCoverageReport e createAggregatedCoverageReport. Você pode usar essas tarefas para gerar um único relatório HTML que consolida dados de cobertura de diferentes tipos de teste (unidade e instrumentação), módulos e variantes de build.
Isso oferece uma visão abrangente da cobertura de código do projeto em um único painel.
Pré-requisitos
- Plug-in do Android para Gradle 9.2.0-alpha07 ou mais recente
Para gerar um relatório unificado, execute uma das seguintes tarefas na linha de comando:
| Escopo da cobertura | Comando | Descrição | Local do relatório |
|---|---|---|---|
| Módulo atual | ./gradlew :module-name:createCoverageReport |
Gera um relatório de cobertura unificado para o módulo atual, mesclando dados de todos os tipos de teste. | path-to-your-project/module-name/build/reports/code_coverage_html_report/ |
| Módulo atual e dependências | ./gradlew :module-name:createAggregatedCoverageReport |
Gera um relatório de cobertura unificado para o módulo atual e todas as dependências. Essa tarefa está disponível para módulos de app e módulos de biblioteca com a publicação ativada. | path-to-your-project/module-name/build/reports/aggregated_code_coverage_html_report/ |
A página de destino do relatório HTML gerado mostra um resumo de alto nível de todos os módulos. É possível detalhar do módulo para o pacote, do pacote para a classe e da classe para o arquivo de origem. Clique em qualquer arquivo para ver o código com destaque para a cobertura de linha e ramificação:
- Verde: linhas cobertas.
- Vermelho: linhas não cobertas.
- Amarelo: cobertura parcial (algumas instruções ou ramificações ausentes).