我发现我的Sonar实例5.1或5.1.1(带有最新的声纳 - 跑步者2.x)停止在项目的仪表板上显示部分测试信息(单元测试小部件)。
我拥有的属性(在Gradle' sonarRunner> sonarProperties部分):
property "sonar.junit.reportsPath", "build/test-results/UT"
property "sonar.surefire.reportsPath", "build/test-results/UT"
要修复它,我还必须包含以下属性:
property "sonar.java.junit.reportsPath", "build/test-results/UT"
property "sonar.java.surefire.reportsPath", "build/test-results/UT"
仅供参考:我的所有单元测试报告都在 build / test-results / UT 文件夹下,所有集成测试结果文件都是unedr build / test-结果/ IT 文件夹等
我想知道这是由于我使用的Gradle版本(2.3)还是由于SonarQube(4.5+)的更高版本,因为我同时拥有SQ 5.1和5.1.1实例。 我知道SonarQube团队从SonarQube版本4.12开始提供多语言支持
自SonarQube 4.2以来,可以对多语言项目进行分析。
现在,它提出了一个问题。要获得基于Groovy的项目的相同单元测试信息,我是否需要使用:
property "sonar.groovy.junit.reportsPath", "build/test-results/UT"
property "sonar.groovy.surefire.reportsPath", "build/test-results/UT"
如果我的项目有Groovy代码而不是java,那么就是这样吗?
使用双引号搜索" ** sonar.java.junit.reportPath " **在Google中显示未找到结果如果我可以在不使用&#34的情况下再次运行搜索,我可以尝试查看谷歌搜索结果双引号(对于此属性)。
在SonarQube网站上做同样的事情"搜索框"所示:
未找到 sonar.java.junit.reportPath 的搜索结果。请尝试以下建议之一:
虽然在Gradle里面,
sonarRunner task {
.. inside ..
sonarProperties {
... section ... where I define various sonar props..
}
...
}
我可以定义sonar.junit.reportPath,sonar.java.junit.reportPath和类似的sonar.surefire.reporPath和sonar.java.surefire.reportPath,并且在Gradle中运行sonarRunner任务时,它不会错了。因此,它让我相信属性变量是有效的。
对于基于混合Java和Groovy的项目(即Java中的源代码,但在Groovy中进行测试),运行sonarRunner或独立的sonar-runner命令也存在问题。设置sonar.language=java,grvy
没有帮助。我在stackoverflow上发布了这个问题,但到目前为止,我没有完美的结果/答案,如何获得一个完整的声纳仪表板并运行Groovy项目,就像我得到一个Java项目。
Groovy project - Sonar - Publish project and Unit + Integration Test code coverage data
PS :我已经尝试了各种值来设置声纳。。变量(至于声纳源,测试等等属性,他们提到过在他们的网站的文档部分)
答案 0 :(得分:0)
截至目前唯一有效的属性是sonar.junit.reportsPath
,它将告诉 java sonarqube插件在哪里导入单元测试的结果。
对于groovy,这是正在进行的工作,请参阅:http://jira.sonarsource.com/browse/SONARGROOV-2
您提到的所有其他属性都不存在,也不会被考虑在内。