我正在使用带有sonarqube插件的Gradle并使用它来触发它
gradle sonarqube
Run Code Online (Sandbox Code Playgroud)
然而,它正在调用内置的"测试"任务,该任务运行所有类型的测试,包括目前并非全部通过的集成测试.我希望能够指定sonarqube任务使用类似"unitTest"任务的东西而不是运行所有内容的"测试"任务.
团队中的其他人在IDE中运行黄瓜测试也使用测试任务,所以目前当我在主要的"测试"任务中排除黄瓜测试时,他们必须发表评论,排除他们的黄瓜测试开始,这不是理想的.
我使用以下语法包括sonarqube:
plugins {
id "org.sonarqube" version "2.5"
}
Run Code Online (Sandbox Code Playgroud)
如何让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") }
}
Run Code Online (Sandbox Code Playgroud)
dependsOn.clear()清除所有依赖项,所以如果有多个,我可能需要做类似的事情
taskName.enabled=false
Run Code Online (Sandbox Code Playgroud)
除非有更简单的方法,否则在任务完成后重新启用它?我尝试过dependsOn.remove("测试"),但是没有用.
该sonarqube任务简单地依赖于test默认任务,根据该文档:
为了满足这些需求,如果应用了java插件,插件会在测试时添加一个来自sonarqube的任务依赖项.
您可以轻松删除此任务依赖项并添加自己的依赖项:
task unitTest {
doLast {
println "I'm a unit test"
}
}
tasks['sonarqube'].with {
dependsOn.clear()
dependsOn unitTest
}
Run Code Online (Sandbox Code Playgroud)
现在,unitTest只要执行sonarqube任务,就会执行任务(及其依赖项).请注意,这dependsOn只是依赖项的列表.您可以通过多种不同方式对其进行修改.
| 归档时间: |
|
| 查看次数: |
4133 次 |
| 最近记录: |