【问题标题】:Sonar Unit tests report parameter - sonar.junit.reportPath vs sonar.java.junit.reportPath声纳单元测试报告参数 - sonar.junit.reportPath vs sonar.java.junit.reportPath
【发布时间】:2015-10-06 16:40:57
【问题描述】:

我发现我的 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 文件夹下,所有集成测试结果文件都放在 unedr build/test- results/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 中显示 No results found,这迫使我尝试查看 google如果我可以在不使用 " 双引号(对于此属性)的情况下再次运行搜索,则结果。

在 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 的混合项目运行 sonarRunner 或独立 sonar-runner 命令也存在问题(即 Java 中的源代码但 Groovy 中的测试)。设置 sonar.language=java,grvy 没有帮助。我在 stackoverflow 上发布了这个问题,但到目前为止,我还没有完美的结果/答案来说明如何为 Groovy 项目启动并运行一个完整的声纳仪表板,就像我为 Java 项目获得的一样。

Groovy project - Sonar - Publish project and Unit + Integration Test code coverage data

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

【问题讨论】:

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


    【解决方案1】:

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

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

    您提到的所有其他属性都不存在,因此不予考虑。

    【讨论】:

      猜你喜欢
      • 2014-02-15
      • 2019-11-01
      • 2016-08-04
      • 2017-10-25
      • 2016-11-18
      • 1970-01-01
      • 2016-09-06
      • 2017-02-11
      • 2015-05-15
      相关资源
      最近更新 更多