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 (Einheiten- und Instrumentierungstests) 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 in den Build-Dateien auf Modulebene für jede Variante, für die Sie Berichte zur Codeabdeckung erhalten möchten, enableAndroidTestCoverage und enableUnitTestCoverage 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)
AGP 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 { testCoverage { jacocoVersion = "JACOCO_VERSION" } }
Groovy
android { testCoverage { jacocoVersion = 'JACOCO_VERSION' } }
Variantenbezogene Berichte zur Codeabdeckung erstellen
Wenn Sie Berichte zur Codeabdeckung nur für Einheitentests oder nur für Instrumentierungstests 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 |
| Instrumentierungstests | ./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 testAllSuites
und testAllSuitesWithDependencies Gradle-Aufgaben erstellen. Mit diesen Aufgaben wird ein einzelner HTML-Bericht erstellt, in dem Daten zur Codeabdeckung aus verschiedenen Testtypen (Einheiten- und Instrumentierungstests), Modulen und Build-Varianten zusammengeführt werden. So erhalten Sie eine umfassende Übersicht über die Codeabdeckung Ihres Projekts in einem einzigen Dashboard.
Vorbereitung
- Android-Gradle-Plug-in 9.5.0-alpha05 oder höher
- Codeabdeckung aktivieren
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:testAllSuites --continue |
Testet alle Test-Suites und erstellt einen einheitlichen Bericht zur Codeabdeckung für das aktuelle Modul, wobei Daten aus allen Testtypen zusammengeführt werden. | path-to-your-project/module-name/build/reports/testAllSuites/coverage-report/ |
| Aktuelles Modul und Abhängigkeiten | ./gradlew :module-name:testAllSuitesWithDependencies --continue |
Testet alle Test-Suites und 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, bei denen die Veröffentlichung aktiviert ist. | path-to-your-project/module-name/build/reports/testAllSuitesWithDependencies/coverage-report/ |
Auf der Landingpage des generierten HTML-Berichts finden Sie eine allgemeine Zusammenfassung aller Module. 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 Hervorhebung für die Zeilen- und Zweigabdeckung zu sehen:
- Grün: Abgedeckte Zeilen.
- Rot: Nicht abgedeckte Zeilen.
- Gelb: Teilweise Abdeckung (einige Anweisungen oder Zweige fehlen).