Gradle 中已弃用的 JaCoCo 扩展的替代品是什么?
What is a replacement for a deprecated JaCoCo extension in Gradle?
我同时使用 Robolectric
和 JaCoCo
。如果 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
}
}
}
我同时使用 Robolectric
和 JaCoCo
。如果 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
}
}
}