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 { testCoverage { jacocoVersion = "JACOCO_VERSION" } }
Groovy
android { testCoverage { jacocoVersion = '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 de instrumentação 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 testAllSuites
e testAllSuitesWithDependencies. Essas tarefas vão 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.5.0-alpha05 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 de cobertura | Comando | Descrição | Local do relatório |
|---|---|---|---|
| Módulo atual | ./gradlew :module-name:testAllSuites --continue |
Testa todos os conjuntos de testes e 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/testAllSuites/coverage-report/ |
| Módulo atual e dependências | ./gradlew :module-name:testAllSuitesWithDependencies --continue |
Testa todos os conjuntos de testes e 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 a publicação ativada. | path-to-your-project/module-name/build/reports/testAllSuitesWithDependencies/coverage-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).