Android Gradle 外掛程式可以建立程式碼涵蓋率報告,追蹤測試涵蓋的程式碼百分比。本頁說明如何啟用涵蓋範圍報表功能及產生報表。
您可以為每個變體產生每種測試類型 (單元和插樁) 的涵蓋範圍報表。您也可以針對不同測試類型、模組和建構變化版本,產生統一的涵蓋範圍報表。
啟用程式碼涵蓋率
如要啟用程式碼涵蓋率,請在每個要取得涵蓋率報表的變數的模組層級建構檔案中,將 enableAndroidTestCoverage 和 enableUnitTestCoverage 設為 true:
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 版本 (選用)
在模組上啟用涵蓋範圍時,AGP 會自動套用 Jacoco。 不過,如果您需要使用特定版本的 Jacoco,可以在模組層級建構檔案中指定:
Kotlin
android { jacoco { version = "JACOCO_VERSION" } }
Groovy
android { jacoco { version = 'JACOCO_VERSION' } }
產生特定變體的涵蓋範圍報表
如要只為特定變數的單元測試或檢測設備測試產生涵蓋範圍報告,請執行對應的工作。
| 測試類型 | 指令 | 回報位置 |
|---|---|---|
| 單元測試 | ./gradlew :module-name:createVariantNameUnitTestCoverageReport |
path-to-your-project/module-name/build/reports/coverage/test/variant/index.html |
| 檢測設備測試 | ./gradlew :module-name:createVariantNameAndroidTestCoverageReport |
path-to-your-project/module-name/build/reports/coverage/androidTest/variant/connected/index.html |
產生整合式程式碼涵蓋率報表
您可以使用 createCoverageReport 和 createAggregatedCoverageReport Gradle 工作產生統一的程式碼涵蓋率報表。您可以使用這些工作,產生單一 HTML 報表,整合不同測試類型 (單元和插樁)、模組和建構變體的涵蓋範圍資料。您可以在單一資訊主頁中,全面掌握專案的程式碼涵蓋率。
必要條件
- Android Gradle 外掛程式 9.2.0-alpha07 以上版本
如要產生統一報表,請從指令列執行下列其中一項工作:
| 涵蓋範圍 | 指令 | 說明 | 回報位置 |
|---|---|---|---|
| 目前模組 | ./gradlew :module-name:createCoverageReport |
為目前模組產生統一的涵蓋範圍報告,並合併所有測試類型的資料。 | path-to-your-project/module-name/build/reports/code_coverage_html_report/ |
| 目前模組和依附元件 | ./gradlew :module-name:createAggregatedCoverageReport |
為目前模組和所有依附元件產生統一的涵蓋範圍報表。這項工作適用於應用程式模組和已啟用發布功能的程式庫模組。 | path-to-your-project/module-name/build/reports/aggregated_code_coverage_html_report/ |
產生的 HTML 報表到達網頁會顯示所有模組的概略摘要。您可以從模組向下鑽研至套件、從套件向下鑽研至類別,以及從類別向下鑽研至來源檔案。按一下任一檔案,即可查看程式碼,其中會醒目顯示行和分支涵蓋範圍:
- 綠色:涵蓋的程式碼行。
- 紅色:未涵蓋的程式碼行。
- 黃色:部分涵蓋範圍 (遺漏部分指令或分支)。