Il plug-in Android per Gradle può creare report sulla copertura del codice che monitorano la percentuale di codice coperta dai test. Questa pagina descrive come attivare la generazione di report sulla copertura e generare report.
Puoi generare report sulla copertura per ogni tipo di test (unità e strumentazione) per ogni variante. Puoi anche generare report di copertura unificati per diversi tipi di test, moduli e varianti di build.
Attiva 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 } } }
Alla moda
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 abiliti 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 { testCoverage { jacocoVersion = "JACOCO_VERSION" } }
Alla moda
android { testCoverage { jacocoVersion = 'JACOCO_VERSION' } }
Generare report sulla copertura specifici per le varianti
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 segnalazione |
|---|---|---|
| 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 unificati sulla copertura del codice
Puoi generare report unificati sulla copertura del codice utilizzando i task Gradle testAllSuites
e testAllSuitesWithDependencies. Queste attività genereranno un singolo report HTML che consolida i dati di copertura di diversi tipi di test (unità e strumentazione), moduli e varianti di build. che fornisce una
visione completa della copertura del codice del progetto in un'unica dashboard.
Prerequisiti
- Plug-in Android per Gradle 9.5.0-alpha05 o versioni successive
- Attivare la copertura del codice
Per generare un report unificato, esegui una delle seguenti attività dalla riga di comando:
| Ambito della copertura | Comando | Descrizione | Posizione segnalazione |
|---|---|---|---|
| Modulo attuale | ./gradlew :module-name:testAllSuites |
Esegue il test di tutte le suite di test e genera un report di 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:testAllSuitesWithDependencies |
Esegue il test di tutte le suite di test e genera un report di copertura unificato per il modulo corrente e tutte le relative dipendenze. Questa attività è disponibile per i moduli dell'app e per i moduli della libreria con pubblicazione abilitata. | path-to-your-project/module-name/build/reports/aggregated_code_coverage_html_report/ |
La pagina di destinazione del report HTML generato mostra un riepilogo generale di tutti i moduli. Puoi visualizzare in dettaglio dal modulo al pacchetto, dal pacchetto alla classe e dalla classe al file sorgente. Fai clic su un file per visualizzare il codice con l'evidenziazione della copertura di riga e ramo:
- Verde: linee coperte.
- Rosso: righe non coperte.
- Giallo: copertura parziale (mancano alcune istruzioni o rami).