使用 JaCoCo 從應用程式/發行版彙整程式碼覆蓋率 (孵化中) 範例
版本 8.13
您可以在支援 Gradle 的 IDE 中開啟此範例。 |
此範例示範如何使用 JaCoCo 彙整多個 Java 子專案的程式碼覆蓋率。jacoco-report-aggregation 外掛程式 在應用於發行版專案(例如 Android 應用程式或 WAR 子專案)時,提供此功能。
此範例中的專案包含三個專案:application
、list
和 utilities
。這三個專案都應用了 jacoco
外掛程式,而 application
在其實作配置中使用了 list
和 utilities
。application
子專案是此軟體專案的最終發行版,並應用了 jacoco-report-aggregation
來執行程式碼覆蓋率彙整。
測試報告彙整外掛程式目前不適用於 com.android.application 外掛程式。 |
application/build.gradle.kts
plugins {
id("myproject.java-conventions")
application
id("jacoco-report-aggregation") (1)
}
dependencies {
implementation(project(":list"))
implementation(project(":utilities"))
}
application {
mainClass = "org.gradle.sample.Main"
}
tasks.check {
dependsOn(tasks.named<JacocoReport>("testCodeCoverageReport")) (2)
}
application/build.gradle
plugins {
id 'myproject.java-conventions'
id 'application'
id 'jacoco-report-aggregation' (1)
}
dependencies {
implementation project(':list')
implementation project(':utilities')
}
application {
mainClass = 'org.gradle.sample.Main'
}
tasks.named('check') {
dependsOn tasks.named('testCodeCoverageReport', JacocoReport) (2)
}
如果存在 jvm-test-suite
外掛程式,則 application
專案不需要額外配置。
1 | 應用 jacoco-report-aggregation 外掛程式 |
2 | 選用:使 JaCoCo 彙整報告生成成為 'check' 生命周期階段的一部分 |
報告彙整邏輯不會自動檢查所有子專案以彙整覆蓋率資料。相反地,會選擇發行版專案執行時期類別路徑的直接和遞移專案依賴關係,以進行潛在的彙整。
對於名為 'test' 的預設測試套件,不需要額外配置。彙整的報告及其 JacocoReport
類型的後端任務是根據 application
專案中存在的測試套件合成的。具有相同 testType
屬性的測試套件將會被彙整。
執行測試並生成報告
$ ./gradlew testCodeCoverageReport BUILD SUCCESSFUL 25 actionable tasks: 25 executed
現在可以在 application/build/reports/jacoco/testCodeCoverageReport
下找到 XML 和 HTML 報告。
如需更多資訊,請參閱Java 專案中的測試章節。