声纳单元测试报告参数 - sonar.junit.reportPath vs sonar.java.junit.reportPath

时间:2015-07-17 02:50:55

标签: junit gradle sonarqube sonar-runner gradle-2

我发现我的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 :我已经尝试了各种值来设置声纳。变量(至于声纳源,测试等等属性,他们提到过在他们的网站的文档部分)

1 个答案:

答案 0 :(得分:0)

截至目前唯一有效的属性是sonar.junit.reportsPath,它将告诉 java sonarqube插件在哪里导入单元测试的结果。

对于groovy,这是正在进行的工作,请参阅:http://jira.sonarsource.com/browse/SONARGROOV-2

您提到的所有其他属性都不存在,也不会被考虑在内。