測試報告聚合外掛(外掛 ID:test-report-aggregation)提供的工作和設定用於將多個 測試 工作呼叫(可能跨多個 Gradle 專案)的結果聚合到單一 HTML 報告中。

使用方式

若要使用測試報告聚合外掛,請在組建指令碼中包含以下內容

plugins {
    id 'test-report-aggregation'
}
plugins {
    id("test-report-aggregation")
}

請注意,除非與 JVM 測試套件外掛 搭配使用,否則此外掛不會執行任何動作。Java 外掛 會自動套用 JVM 測試套件外掛。

現在有兩種方法可以收集多個子專案的測試結果

  1. 從發行版專案,例如應用程式或 WAR 子專案 → 發行版範例

  2. 使用獨立專案指定子專案 → 獨立範例

範例 2 也可用於透過根專案聚合結果。

測試報告聚合外掛目前無法與 com.android.application 外掛搭配使用。

工作

當專案也套用 jvm-test-suite 外掛時,會為每個測試套件新增以下工作

testSuiteAggregateTestReport — TestReport

相依於: 符合下列屬性的變異成品

透過 testReportAggregation 組態收集直接和傳遞式專案相依項目的變異。將比對下列屬性

    - org.gradle.category              = verification   (1)
    - org.gradle.testsuite.type        = unit-test      (2)
    - org.gradle.verificationtype      = test-results   (3)
1 類別屬性;值已固定。
2 測試套件類型屬性;值取自 JvmTestSuite#getTestType()
3 驗證類型屬性;值已固定。

有關測試執行所產生變異的更多資訊,請參閱 JVM 測試套件外掛程式文件中的 傳出變異 部分。

報告

預設情況下,當任何任務失敗(包括測試失敗)時,Gradle 會停止執行任務。若要確保您的建置總是會產生彙總報告,請在 Gradle 指令中指定 --continue 選項。如需更多資訊,請參閱 在發生失敗時繼續建置

自動產生報告

當專案也套用 jvm-test-suite 外掛程式時,會為每個測試套件新增下列報告物件

testSuiteAggregateTestReportAggregateTestReport

建立一個容器來參數化 TestSuiteType 值。

手動產生報告

當專案未套用 jvm-test-suite 外掛程式時,您必須手動註冊一個或多個報告

build.gradle.kts
reporting {
    reports {
        val testAggregateTestReport by creating(AggregateTestReport::class) { (1)
            testType = TestSuiteType.UNIT_TEST
        }
    }
}
build.gradle
reporting {
    reports {
        testAggregateTestReport(AggregateTestReport) { (1)
            testType = TestSuiteType.UNIT_TEST
        }
    }
}
1 建立一個名為 testAggregateTestReport、類型為 AggregateTestReport 的報告。為方便起見,使用 TestSuiteType 類別中的常數值設定 TestType。任何字串值皆可接受。

報告建立會自動建立後端任務,以根據指定的測試套件類型值進行彙總。

相依項管理

測試報告彙總外掛程式會新增下列相依項組態

表 1. 測試報告彙總外掛程式 - 相依項組態
名稱 意義

testReportAggregation

用於宣告所有專案相依性項目的設定,其中包含要彙總的測試結果資料。

aggregateTestReportResults

使用 變異感知比對,從 testReportAggregation 設定中使用專案相依性項目,以找出適當的測試套件類型。

如果專案也套用 jvm-test-suite 外掛,則不需要明確將相依性項目新增至 testReportAggregation 設定。