Sonar单元测试报告参数- Sonar .junit. reportpath vs Sonar .java.junit



我发现我的Sonar实例5.1或5.1.1(使用最新的Sonar -runner 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文件夹下,所有集成测试结果文件都在build/test-results/IT文件夹下,等等。

我想知道这是由于Gradle版本,我正在使用(2.3)或它是由于SonarQube(4.5+)的更新版本,因为我有sq5.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"**使用双引号显示在谷歌中没有发现结果,它迫使我尝试查看谷歌结果,如果我可以再次运行搜索而不使用"双引号(用于此属性)。

在SonarQube网站做同样的"搜索框"显示:

sonar.java.junit.reportPath未找到结果。请尝试以下建议之一:

虽然在Gradle中,inside

 sonarRunner task { 
       .. inside ..
       sonarProperties { 
          ... section ... where I define various sonar props..
       } 
       ... 
  }

我可以定义sonar.junit。同样,sonar.java.junit.reportPath和sonar.surefire. reportPath和sonar.java.surefire.reportPath在Gradle中运行sonarRunner任务时,它不会出错。因此,它使我相信属性变量是有效的。

对于一个基于Java和Groovy的混合项目,运行sonarRunner或独立的sonar-runner命令也有问题(例如,源代码在Java中,测试在Groovy中)。设置sonar.language=java,grvy没有帮助。我在stackoverflow上发布了这个问题,但是到目前为止,我还没有一个完美的结果/答案,关于如何像在Java项目中那样为Groovy项目启动和运行一个完整的声纳仪表板。

Groovy项目- Sonar -发布项目和单元+集成测试代码覆盖率数据

PS:我已经尝试了设置声纳的各种值。变量(就声纳源、测试等属性而言,他们在网站的文档部分提到过)

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

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

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

相关内容

  • 没有找到相关文章

最新更新