您可以使用 IntelliJ 原生匯入器Eclipse Buildship 在 IDE 中開啟此範例。

此範例顯示如何彙總多個 Java 子專案的測試結果。test-report-aggregation 外掛 在套用至發行專案(例如 Android 應用程式或 WAR 子專案)時,提供此功能。

此範例中的專案包含三個專案:applicationlistutilities。所有三個專案套用 java 外掛,而 application 在其實作組態中使用 listutilitiesapplication 子專案是此軟體專案的最終發行版,並套用 test-report-aggregation 來執行測試結果彙總。

測試報告彙總外掛目前無法與 com.android.application 外掛搭配使用。
application/build.gradle.kts
plugins {
    id("myproject.java-conventions")
    application
    id("test-report-aggregation") (1)
}

dependencies {
    implementation(project(":list"))
    implementation(project(":utilities"))
}

application {
    mainClass = "org.gradle.sample.Main"
}

tasks.check {
    dependsOn(tasks.named<TestReport>("testAggregateTestReport")) (2)
}
application/build.gradle
plugins {
    id 'myproject.java-conventions'
    id 'application'
    id 'test-report-aggregation' (1)
}

dependencies {
    implementation project(':list')
    implementation project(':utilities')
}

application {
    mainClass = 'org.gradle.sample.Main'
}

tasks.named('check') {
    dependsOn tasks.named('testAggregateTestReport', TestReport) (2)
}

如果存在 jvm-test-suite 外掛,application 專案不需要額外的組態。

1 套用 test-report-aggregation 外掛
2 選用:讓彙總測試報告產生成為「檢查」生命週期階段的一部分

聚合邏輯不會自動檢查所有子專案的測試結果。相反地,會選取分發專案執行時期類別路徑的直接和傳遞式專案相依性,以進行潛在的聚合。

對於名為「test」的預設測試套件,不需要額外的設定。聚合報告及其支援的 TestReport 類型工作會根據 application 專案中現有的測試套件進行合成。具有相同 testType 屬性的測試套件將會被聚合。

執行測試並產生報告

$ ./gradlew testAggregateTestReport

BUILD SUCCESSFUL
24 actionable tasks: 24 executed

現在可以在 application/build/reports/tests/unit-tests/aggregated-results 中找到聚合的 HTML 報告。

如需更多資訊,請參閱Java 專案章節中的測試