用法
要使用 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 | 验证类型属性;值为固定值。 |
有关使用 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 。任何字符串值都是可以接受的。 |
报告创建会自动创建支持任务,以汇总给定测试套件类型值的覆盖率结果。