我正在尝试添加以下任务,以便我可以在我的java + kotlin项目中获取一些覆盖数据(这是值得的,这是一个gradle项目)...但是我收到以下错误:
"无法添加任务':jacocoTestReport'因为具有该名称的任务已经存在"
以下是我要添加的实际任务:
task jacocoTestReport(type: JacocoReport, dependsOn: "testDebugUnitTest") {
group = "Reporting"
description = "Generate Jacoco coverage reports for Debug build"
reports {
xml.enabled = true
html.enabled = true
}
// what to exclude from coverage report
// UI, "noise", generated classes, platform classes, etc.
def excludes = [
'**/R.class',
'**/R$*.class',
'**/*$ViewInjector*.*',
'**/BuildConfig.*',
'**/Manifest*.*',
'**/*Test*.*',
'android/**/*.*',
'**/*Fragment.*',
'**/*Activity.*'
]
// generated classes
classDirectories = fileTree(
dir: "$buildDir/intermediates/classes/debug",
excludes: excludes
) + fileTree(
dir: "$buildDir/tmp/kotlin-classes/debug",
excludes: excludes
)
// sources
sourceDirectories = files([
android.sourceSets.main.java.srcDirs,
"src/main/kotlin"
])
executionData = files("$buildDir/jacoco/testDebugUnitTest.exec")
}
现在,我在这里感到困惑的问题是,我无法在任何地方找到这个名字的另一类......所以也许有一些时髦的事情发生了?我试过谷歌搜索这个,但我们真的找不到真正帮助我解决问题的东西。
所有帮助非常感谢。我意识到这不是java或kotlin特定的问题 - 但由于它是一个联合的java + kotlin项目,我想我会在这个问题中标记两个,以防有其他人见过的细微问题。
答案 0 :(得分:3)
假设您已经在应用Jacoco Gradle插件,那么是的,它已经定义了一个名为jacocoTestReport
的任务,因此错误。
您需要做的就是根据文档https://docs.gradle.org/current/userguide/jacoco_plugin.html#sec:jacoco_report_configuration
定义您的特定设置以下是一个例子:
jacocoTestReport {
dependsOn "testDebugUnitTest"
reports {
xml.enabled = true
html.enabled = true
}
}
您列出的大多数其他配置项都属于'jacoco'配置块。 https://docs.gradle.org/current/userguide/jacoco_plugin.html#sec:jacoco_specific_task_configuration