用法
若要使用 JaCoCo 報告彙總外掛,請在您的組建指令碼中包含下列內容
plugins { id 'jacoco-report-aggregation' }
plugins { id("jacoco-report-aggregation") }
請注意,除非與 JVM 測試套件外掛 搭配使用,否則此外掛不會執行任何動作。Java 外掛 會自動套用 JVM 測試套件外掛。
現在有兩種方法可以收集跨多個子專案的程式碼覆蓋率結果
範例 2 也可用於透過根專案彙總結果。
JaCoCo 報告彙總外掛目前無法與 com.android.application 外掛搭配使用。
|
任務
當專案也套用 jvm-test-suite
外掛時,會為每個測試套件新增下列任務
testSuiteCodeCoverageReport
— JacocoReport-
依賴於:符合下列屬性的變體工件
透過
jacocoAggregation
設定收集直接和傳遞式專案相依性的變體。將會比對下列屬性
- org.gradle.category = verification (1)
- org.gradle.testsuite.type = unit-test (2)
- org.gradle.verificationtype = jacoco-results (3)
1 | 類別屬性;值是固定的。 |
2 | TestSuiteType 屬性;值衍生自 JvmTestSuite#getTestType()。 |
3 | VerificationType 屬性;值是固定的。 |
有關使用 JaCoCo 執行測試所產生的變異的更多資訊,請參閱 JaCoCo 外掛程式文件中的 傳出變異 區段。
報告
預設情況下,當任何任務失敗時,Gradle 會停止執行任務,包括測試失敗。若要確保您的建置始終產生彙總報告,請在 Gradle 命令中指定 |
自動產生報告
當專案也套用 jvm-test-suite
外掛程式時,會為每個測試套件新增下列報告物件
testSuiteCodeCoverageReport
— JacocoCoverageReport-
建立一個容器來參數化 TestSuiteType 值。
手動產生報告
當專案未套用 jvm-test-suite
外掛程式時,您必須手動註冊一個或多個報告
範例 1. 建立一個報告容器
build.gradle.kts
reporting {
reports {
val testCodeCoverageReport by creating(JacocoCoverageReport::class) { (1)
testType = TestSuiteType.UNIT_TEST
}
}
}
build.gradle
reporting {
reports {
testCodeCoverageReport(JacocoCoverageReport) { (1)
testType = TestSuiteType.UNIT_TEST
}
}
}
1 | 建立一個名為 testCodeCoverageReport 的 JacocoCoverageReport 類型報告。為方便起見,使用 TestSuiteType 類別中的常數值設定 TestType 。任何字串值都是可以接受的。 |
報告建立會自動建立後端任務,以彙總給定測試套件類型值的涵蓋率結果。