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 { testCoverage { jacocoVersion = "JACOCO_VERSION" } }
Groovy
android { testCoverage { jacocoVersion = '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 |
產生統合程式碼涵蓋率報表
您可以使用 testAllSuites 和 testAllSuitesWithDependencies Gradle 工作,產生統一的程式碼涵蓋率報表。這些工作會產生單一 HTML 報表,整合不同測試類型 (單元和檢測)、模組和建構變化版本的涵蓋率資料。您可以在單一資訊主頁中,全面查看專案的程式碼涵蓋率。
必要條件
- Android Gradle 外掛程式 9.5.0-alpha05 以上版本
- 啟用程式碼涵蓋率
如要產生統合報表,請在指令列執行下列其中一項工作:
| 涵蓋範圍 | 指令 | 說明 | 報告位置 |
|---|---|---|---|
| 目前單元 | ./gradlew :module-name:testAllSuites --continue |
測試所有測試套件,並為目前模組產生統一的涵蓋率報表,合併所有測試類型的資料。 | path-to-your-project/module-name/build/reports/testAllSuites/coverage-report/ |
| 目前模組和依附元件 | ./gradlew :module-name:testAllSuitesWithDependencies --continue |
測試所有測試套件,並為目前模組及其所有依附元件產生統一的涵蓋率報表。這項工作適用於應用程式模組和已啟用發布功能的程式庫模組。 | path-to-your-project/module-name/build/reports/testAllSuitesWithDependencies/coverage-report/ |
產生的 HTML 報表到達網頁會顯示所有模組的概略摘要。您可以從模組向下鑽研至套件、從套件向下鑽研至類別,以及從類別向下鑽研至來源檔案。按一下任何檔案,即可查看程式碼,其中會醒目顯示行和分支涵蓋率:
- 綠色:涵蓋的行。
- 紅色:未涵蓋的行。
- 黃色:部分涵蓋 (遺漏部分指令或分支)。
針對檢測設備測試使用裝置端程式碼涵蓋率
根據預設,AGP 會在建構應用程式時,使用 JaCoCo 檢測應用程式的類別,藉此評估檢測設備測試的涵蓋率。從 AGP 9.6.0-alpha01 開始,您可以使用裝置端檢測,在測試執行期間,檢測測試裝置上的應用程式類別。詳情請參閱「查看程式碼涵蓋率報表 (使用裝置端代理程式)」。