Ver relatórios de cobertura de código

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