所以!
我正在使用scc(springcloudcontract)进行集成测试,我想在sonar的 Jmeter 板计数的“覆盖率”部分显示我的单元+scc测试。
我尝试将目录build/generated test sources/contracts(scc的java源代码在生成后存储在其中)添加到sonar.tests属性中,但没有帮助-我仍然只能在sonar的 Jmeter 板中看到我的单元测试计数:
sonarqube {
properties {
property "sonar.host.url", "http://localhost"
property "sonar.projectKey", "myProject"
property "sonar.sources", "src/main/java"
property "sonar.sourceEncoding", "UTF-8"
property "sonar.language", "java"
property "sonar.login", "abracadabra"
property "sonar.tests", "src/test/java, build/generated-test-sources/contracts"
}
}
我已经创建了一个gradle开关:如果在任务图中有task,那么scc的输出文件夹将是src/test/java/generated。任务结束后,此目录将被删除:
contracts {
baseClassForTests = "myProj.BaseTest"
testMode = "EXPLICIT"
testFramework = "JUNIT5"
gradle.taskGraph.whenReady { taskGraph ->
if (taskGraph.hasTask(":sonarqube")) {
generatedTestSourcesDir = project.file('src/test/java/generated')
}
}
}
task deleteGeneratedContractTests(type: Delete) {
delete 'src/test/java/generated'
}
project.tasks["sonarqube"].finalizedBy "deleteGeneratedContractTests"
现在单元测试和scc测试都显示在sonar的 Jmeter 板上,但是我的解决方案,在我看来,有点难看:有没有一种方法可以配置sonarqube插件而不在src/中创建/删除目录?
版本:
org.qube 3.0版
org.springframework.cloud.contract 2.2.3合同
暂无答案!
目前还没有任何答案,快来回答吧!