一旦系统允许,我会悬赏一大笔钱。
我特别遇到的问题是覆盖范围和集成测试的工作。对于这些错误,我看到的是没有提供信息的错误:
Resource not found: com.something.somethingelse.SomeITCase没有信息,因为它没有任何关联,也没有太多意义的人谁没有任何上下文。
这是我看到的另一个奇怪的地方。在没有对子项目进行集成测试的情况下,我看到了以下内容:
JaCoCoItSensor: JaCoCo IT report not found: /dev/build/dilithium/target/jacoco-it.exec我为什么要见target?这不是一个Maven项目。全局搜索显示,代码库中的任何地方都没有提到target目录。
然后是the documentation的这一部分
sonarqube {
properties {
properties["sonar.sources"] += sourceSets.custom.allSource.srcDirs
properties["sonar.tests"] += sourceSets.integTest.allSource.srcDirs
}
}据我所知,sourceSets.integTest.allSource.srcDirs返回的是文件,而不是字符串。此外,它还应该是:
sonarqube {
properties {
property "sonar.tests", "comma,separated,file,paths"
}注意,如果你有一个不存在的目录,你会得到一个错误。Gradle的标准是简单地忽略不存在的目录。您的代码最终如下所示:
sonarqube {
StringBuilder builder = new StringBuilder()
sourceSets.integrationTest.allSource.srcDirs.each { File dir ->
if ( dir.exists() ) {
builder.append(dir.getAbsolutePath())
builder.append(",")
}
}
if (builder.size() > 1) builder.deleteCharAt(builder.size() -1 )
if (builder.size() > 1 )
properties["sonar.tests"] += builder.toString()
properties["sonar.jacoco.reportPath"] +=
"$project.buildDir/jacoco/test.exec,$project.buildDir/jacoco/integrationTest.exec"
}声纳报告完全没有覆盖范围。如果我搜索*.exec文件,我会看到我所期望的。那就是:
./build/jacoco/test.exec
./build/jacoco/integrationTest.exec...but奇怪的是,我也看到了这一点:
./build/sonar/com.proj_name_component_management-component_proj-recordstate/jacoco-overall.exec那是什么?为什么它会在这样一个非标准的位置?
好的,我添加了以下代码:
properties {
println "Before: " + properties.get("sonar.tests")
println "Before: " + properties.get("sonar.jacoco.reportPath")
property "sonar.tests", builder.toString()
property "sonar.jacoco.reportPath", "$project.buildDir/jacoco/test.exec,$project.buildDir/jacoco/integrationTest.exec"
println "After: " + properties.get("sonar.tests")
println "After: " + properties.get("sonar.jacoco.reportPath")
}...which结果为:仍在运行
发布于 2016-05-11 03:55:26
我不想要任何赏金或积分。这只是个建议。你能得到一些Jacoco的报告吗?
就我个人而言,我会将2:即Jacoco报告生成和Sonar分开。我首先会尝试简单地生成Jacoco,然后我会看看为什么Sonar不能得到它们。
https://stackoverflow.com/questions/37147380
复制相似问题