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 compilazione.
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 } } }
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 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 { testCoverage { jacocoVersion = "JACOCO_VERSION" } }
Alla moda
android { testCoverage { jacocoVersion = 'JACOCO_VERSION' } }
Generare report sulla copertura specifici della variante
Per generare report sulla copertura solo per i test delle unità o solo per i test di instrumentazione 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 sulla copertura del codice unificati
Puoi generare report sulla copertura del codice unificati utilizzando le attività Gradle testAllSuites
e testAllSuitesWithDependencies. Queste attività genereranno un singolo report HTML che consolida i dati sulla copertura di diversi tipi di test (unità e strumentazione), moduli e varianti di compilazione. In questo modo, avrai una visione completa della copertura del codice del tuo 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 corrente | ./gradlew :module-name:testAllSuites --continue |
Esegue il test di tutte le suite di test e 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/testAllSuites/coverage-report/ |
| Modulo corrente e dipendenze | ./gradlew :module-name:testAllSuitesWithDependencies --continue |
Esegue il test di tutte le suite di test e 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 abilitata. | path-to-your-project/module-name/build/reports/testAllSuitesWithDependencies/coverage-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 per la copertura di righe e rami:
- Verde: righe coperte.
- Rosso: righe non coperte.
- Giallo: copertura parziale (alcune istruzioni o rami mancanti).