查看程式碼涵蓋率報表

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 報表,整合不同測試類型 (單元和檢測設備)、模組和建構變化版本的涵蓋率資料。您可以在單一資訊主頁中,全面瞭解專案的程式碼涵蓋率。

必要條件

如要產生統合報表,請在指令列執行下列其中一項工作:

涵蓋範圍 指令 說明 回報位置
目前單元 ./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 報表到達網頁會顯示所有模組的概略摘要。您可以從模組向下鑽研至套件、從套件向下鑽研至類別,以及從類別向下鑽研至來源檔案。按一下任一檔案,即可查看程式碼,其中會醒目顯示行和分支涵蓋率:

  • 綠色:涵蓋的行。
  • 紅色:未涵蓋的程式碼行。
  • 黃色:部分涵蓋 (遺漏部分指令或分支)。