我们正在尝试为我们的多模块gradle项目设置sonarqube分析。 其中一个子项目有一个用于集成测试的附加源集。 如文档和其他Stackoverflow-Threads中所述,我们目前在子项目的build.gradle中使用此配置:
sonarqube() {
properties {
property "sonar.jacoco.reportPaths", ["$buildDir/jacoco/test.exec", "$buildDir/jacoco/integrationTest.exec"]
// TODO: Why is not this working?, see doc at https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Gradle
// which says this is the way to go
properties["sonar.tests"] += sourceSets.integrationTest.allSource.srcDirs.findAll({ it.exists() })
}
}
第一个属性正常。 Sonarqube显示由集成测试引起的更高的代码覆盖率。 但集成测试本身并未在Sonarqube中显示为测试。 因为它在特定任务中运行,我们还尝试扩展声纳任务
project.tasks["sonarqube"].dependsOn integrationTest
然后在声纳分析之前执行集成测试,但不改变结果,测试仍未在Sonarqube UI中显示。
声纳测试类的声纳源是什么?我们认为这将是源集,但似乎并非如此?