用法
要使用 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.name   = test             (2)
    - org.gradle.verificationtype = jacoco-results   (3)| 1 | Category 属性;值为固定值。 | 
| 2 | TestSuiteName 属性;值派生自 TestSuite#getName()。 | 
| 3 | VerificationType 属性;值为固定值。 | 
有关 JaCoCo 测试执行产生的变体的更多信息,请参阅 JaCoCo 插件文档的输出变体部分。
报告
| 默认情况下,当任何任务失败(包括测试失败)时,Gradle 会停止执行任务。为确保您的构建始终生成聚合报告,请在 Gradle 命令中指定  | 
自动创建报告
当项目也应用 jvm-test-suite 插件时,会为每个测试套件添加以下报告对象
- testSuiteCodeCoverageReport— JacocoCoverageReport
- 
创建聚合 Jacoco 报告,聚合所有项目依赖项中具有给定名称的所有测试套件。 
手动创建报告
当项目不应用 jvm-test-suite 插件时,您必须手动注册一个或多个报告
示例 1. 创建报告容器
build.gradle.kts
reporting {
    reports {
        val testCodeCoverageReport by creating(JacocoCoverageReport::class) { (1)
            testSuiteName = "test"
        }
    }
}build.gradle
reporting {
    reports {
        testCodeCoverageReport(JacocoCoverageReport) { (1)
            testSuiteName = "test"
        }
    }
}| 1 | 创建一个名为 testCodeCoverageReport、类型为JacocoCoverageReport的报告,聚合所有项目依赖项中具有给定 TestSuite#getName() 的所有测试套件。 | 
报告创建会自动创建后台任务,以聚合给定测试套件类型值的覆盖率结果。