Visualizzare i report sulla copertura del codice

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