【发布时间】:2017-12-31 23:40:45
【问题描述】:
我正在使用 Gradle 和 sonarqube 插件并使用
触发它gradle sonarqube
但是,它正在调用内置的“测试”任务,该任务运行所有类型的测试,包括目前尚未全部通过的集成测试。我希望能够指定 sonarqube 任务使用类似“unitTest”任务的东西,而不是运行所有内容的“test”任务。
团队中的其他人在 IDE 中运行黄瓜测试,该 IDE 也使用测试任务,所以目前当我在主要“测试”任务中排除黄瓜测试时,他们必须评论排除的内容,以便他们的黄瓜测试被踢掉,这并不理想。
我使用以下语法包含 sonarqube:
plugins {
id "org.sonarqube" version "2.5"
}
如何让 sonarqube 任务使用另一个测试任务?
更新:
让它与下面的代码一起工作,让子项目首先运行他们的 unitTests 以生成所需的测试报告数据,然后运行 sonarqube 任务。
// Removes the dependency on main test task and runs unitTests for test code coverage statistics
tasks['sonarqube'].with {
dependsOn.clear()
subprojects.each { dependsOn("${it.name}:unitTests") }
}
dependsOn.clear() 清除所有依赖项,所以如果有多个,我可能不得不做类似的事情
taskName.enabled=false
然后在任务完成后重新启用它,除非有更简单的方法可以做到这一点?我已经尝试过 dependsOn.remove("test") 但没有奏效。
【问题讨论】: