sonar在gradle的构建目录中找不到生成的scc测试的源代码

gz5pxeao  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(213)

所以!
我正在使用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合同

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题