Il plug-in Android per Gradle può creare report sulla copertura del codice che tengono traccia della percentuale di codice coperta dai test. Questa pagina descrive come attivare la generazione di report sulla copertura e come generare i report.
Puoi generare report sulla copertura per ogni tipo di test (unità e strumentazione) per ogni variante. Puoi anche generare report sulla copertura unificati per diversi tipi di test, moduli e varianti di build.
Attivare la copertura del codice
La copertura del codice deve essere attivata impostando enableAndroidTestCoverage e enableUnitTestCoverage su true nei file di build a livello di modulo per ogni variante per cui vuoi ottenere report sulla copertura:
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 } } }
Modificare la versione di Jacoco (facoltativo)
AGP applica automaticamente Jacoco quando attivi la copertura sui moduli. Tuttavia, se devi utilizzare una versione specifica di Jacoco, puoi specificarla nel file di build a livello di modulo:
Kotlin
android { jacoco { version = "JACOCO_VERSION" } }
Groovy
android { jacoco { version = 'JACOCO_VERSION' } }
Generare report sulla copertura specifici per la variante
Per generare report sulla copertura solo per i test delle unità o solo per i test strumentati per una variante specifica, esegui le attività corrispondenti.
| Tipo di test | Comando | Posizione report |
|---|---|---|
| Test delle unità | ./gradlew :module-name:createVariantNameUnitTestCoverageReport |
path-to-your-project/module-name/build/reports/coverage/test/variant/index.html |
| Test strumentati | ./gradlew :module-name:createVariantNameAndroidTestCoverageReport |
path-to-your-project/module-name/build/reports/coverage/androidTest/variant/connected/index.html |
Generare report sulla copertura del codice unificati
Puoi generare report sulla copertura del codice unificati utilizzando le attività Gradle createCoverageReport e createAggregatedCoverageReport. Puoi utilizzare queste attività per generare un singolo report HTML che consolida i dati sulla copertura di diversi tipi di test (unità e strumentazione), moduli e varianti di build.
In questo modo, puoi visualizzare una panoramica completa della copertura del codice del tuo progetto in un'unica dashboard.
Prerequisiti
- Plug-in Android per Gradle 9.2.0-alpha07 o versioni successive
Per generare un report unificato, esegui una delle seguenti attività dalla riga di comando:
| Ambito di copertura | Comando | Descrizione | Posizione report |
|---|---|---|---|
| Modulo corrente | ./gradlew :module-name:createCoverageReport |
Genera un report sulla copertura unificato per il modulo corrente, unendo i dati di tutti i tipi di test. | path-to-your-project/module-name/build/reports/code_coverage_html_report/ |
| Modulo corrente e dipendenze | ./gradlew :module-name:createAggregatedCoverageReport |
Genera un report sulla copertura unificato per il modulo corrente e tutte le relative dipendenze. Questa attività è disponibile per i moduli app e i moduli libreria con la pubblicazione attivata. | path-to-your-project/module-name/build/reports/aggregated_code_coverage_html_report/ |
La pagina di destinazione del report HTML generato mostra un riepilogo di alto livello di tutti i moduli. Puoi eseguire il drill-down dal modulo al pacchetto, dal pacchetto alla classe e dalla classe al file di origine. Fai clic su un file per visualizzare il codice con l'evidenziazione della copertura di righe e rami:
- Verde: righe coperte.
- Rosso: righe non coperte.
- Giallo: copertura parziale (alcune istruzioni o rami mancanti).