Gradle 中已弃用的 JaCoCo 扩展的替代品是什么?

What is a replacement for a deprecated JaCoCo extension in Gradle?

我同时使用 RobolectricJaCoCo。如果 gradle 脚本中没有以下代码行,我的代码覆盖率报告将无法工作:

 testOptions {
    unitTests.all {
        jacoco {
            includeNoLocationClasses = true
        }
    }
 }

但是在 Gradle 的最新版本中,我在这里使用的 JaCoCo 扩展被标记为已弃用。我找不到任何替代品。那么,我应该在哪里应用 includeNoLocationClasses = true 选项?

我找到了解决办法。 JaCoCo 自动为所有 test 类型的任务添加 jacoco 扩展。所以,我所要做的就是将以下几行添加到构建脚本中:

tasks.withType(Test) {
    jacoco.includeNoLocationClasses = true
}

它看起来不像官方解决方案,但它允许自定义 JacocoReport 实现正常工作。

将 Gradle Kotlin DSL 与 Gradle 5.5.1 和 Kotlin 1.3.31 结合使用:

tasks {
    withType<Test> {
        configure<JacocoTaskExtension> {
            isIncludeNoLocationClasses = true
        }
    }
}