O plug-in do Android para Gradle pode criar relatórios de cobertura de código que rastreiam a porcentagem do seu 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) e 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
Para ativar a cobertura de código, defina enableAndroidTestCoverage e
enableUnitTestCoverage como true nos arquivos de build no nível do módulo para cada
variante de que você quer receber 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 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 unificados de cobertura de código
É possível gerar relatórios unificados de cobertura de código usando as tarefas do Gradle createCoverageReport e createAggregatedCoverageReport. Use essas tarefas para gerar um único relatório em HTML que consolida dados de cobertura de diferentes tipos de testes (unidade e instrumentação), módulos e variantes de build. Isso fornece uma visão abrangente da cobertura de código do projeto em um único painel.
Pré-requisitos
- Plug-in do Android para Gradle 9.3.0-alpha09 ou mais recente
- Ativar a cobertura de código
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 e dependências atuais | ./gradlew :module-name:createAggregatedCoverageReport |
Gera um relatório de cobertura unificado para o módulo atual e todas as dependências dele. Essa tarefa está disponível para módulos de app e módulos de biblioteca com 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 cobertura de linha e ramificação:
- Verde: linhas cobertas.
- Vermelho: linhas não cobertas.
- Amarelo: cobertura parcial (algumas instruções ou ramificações não foram cobertas).