Berichte zur Codeabdeckung ansehen

Mit dem Android-Gradle-Plug-in können Berichte zur Codeabdeckung erstellt werden, in denen der Prozentsatz des Codes erfasst wird, der von Ihren Tests abgedeckt wird. Auf dieser Seite wird beschrieben, wie Sie die Berichterstellung zur Codeabdeckung aktivieren und Berichte generieren.

Sie können für jeden Testtyp (Einheitentest und instrumentierter Test) und für jede Variante Berichte zur Codeabdeckung erstellen. Außerdem können Sie einheitliche Berichte zur Codeabdeckung für verschiedene Testtypen, Module und Build-Varianten erstellen.

Codeabdeckung aktivieren

Die Codeabdeckung muss aktiviert werden, indem Sie enableAndroidTestCoverage und enableUnitTestCoverage in den Build-Dateien auf Modulebene für jede Variante, für die Sie Berichte zur Codeabdeckung erhalten möchten, auf true setzen:

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
        }
    }
}

Jacoco-Version ändern (optional)

Das Android-Gradle-Plug-in wendet Jacoco automatisch an, wenn Sie die Codeabdeckung für Ihre Module aktivieren. Wenn Sie jedoch eine bestimmte Version von Jacoco verwenden müssen, können Sie diese in der Build-Datei auf Modulebene angeben:

Kotlin

android {
    jacoco {
        version = "JACOCO_VERSION"
    }
}

Groovy

android {
    jacoco {
        version = 'JACOCO_VERSION'
    }
}

Variantenbezogene Berichte zur Codeabdeckung erstellen

Wenn Sie Berichte zur Codeabdeckung nur für Einheitentests oder nur für instrumentierte Tests für eine bestimmte Variante erstellen möchten, führen Sie die entsprechenden Aufgaben aus.

Testtyp Befehl Ort des Berichts
Einheitentests ./gradlew :module-name:createVariantNameUnitTestCoverageReport path-to-your-project/module-name/build/reports/coverage/test/variant/index.html
Instrumentierte Tests ./gradlew :module-name:createVariantNameAndroidTestCoverageReport path-to-your-project/module-name/build/reports/coverage/androidTest/variant/connected/index.html

Einheitliche Berichte zur Codeabdeckung erstellen

Sie können einheitliche Berichte zur Codeabdeckung mit den Gradle-Aufgaben createCoverageReport und createAggregatedCoverageReport erstellen. Mit diesen Aufgaben können Sie einen einzelnen HTML-Bericht erstellen, in dem Daten zur Codeabdeckung aus verschiedenen Testtypen (Einheitentest und instrumentierter Test), Modulen und Build-Varianten zusammengefasst werden. So erhalten Sie in einem einzigen Dashboard einen umfassenden Überblick über die Codeabdeckung Ihres Projekts.

Voraussetzungen

  • Android-Gradle-Plug-in 9.2.0-alpha07 oder höher

Führen Sie einen der folgenden Befehle aus, um einen einheitlichen Bericht zu erstellen:

Umfang der Codeabdeckung Befehl Beschreibung Ort des Berichts
Aktuelles Modul ./gradlew :module-name:createCoverageReport Erstellt einen einheitlichen Bericht zur Codeabdeckung für das aktuelle Modul und führt Daten aus allen Testtypen zusammen. path-to-your-project/module-name/build/reports/code_coverage_html_report/
Aktuelles Modul und Abhängigkeiten ./gradlew :module-name:createAggregatedCoverageReport Erstellt einen einheitlichen Bericht zur Codeabdeckung für das aktuelle Modul und alle seine Abhängigkeiten. Diese Aufgabe ist für App-Module und Bibliotheksmodule verfügbar, für die die Veröffentlichung aktiviert ist. path-to-your-project/module-name/build/reports/aggregated_code_coverage_html_report/

Auf der Landingpage des generierten HTML-Berichts wird eine allgemeine Zusammenfassung aller Module angezeigt. Sie können von Modul zu Paket, von Paket zu Klasse und von Klasse zu Quelldatei wechseln. Klicken Sie auf eine beliebige Datei, um den Code mit Hervorhebungen für die Zeilen- und Zweigabdeckung zu sehen:

  • Grün: Abgedeckte Zeilen
  • Rot: Nicht abgedeckte Zeilen
  • Gelb: Teilweise Abdeckung (einige Anweisungen oder Zweige fehlen)