【问题标题】:Can't get Unit Test Success in SonarQube无法在 SonarQube 中获得单元测试成功
【发布时间】:2016-10-09 11:49:03
【问题描述】:

我不知道如何让“单元测试成功”部分出现在我的 SonarQube 仪表板上。我已经尝试设置我能想到的所有声纳和 sonar.java,但它们只是没有出现。我正在使用版本 1.0.4 的“sbt-sonarrunner-plugin”和 Jacoco 来计算覆盖率。任何帮助将不胜感激,因为我发现的所有内容都表明设置 sonar.junit.reportsPath 属性应该使其工作。作为参考,我也尝试设置 sonar.test 属性,但它也不起作用。

这就是单元测试小部件的样子。

这里是我的属性,项目名和目录都传入。

val commonSonarProperties = Map(
    "sonar.projectName" -> s"$projectName",
    "sonar.junit.reportsPath" -> s"$projectDir/target/test-reports",
    s"$projectName.sonar.sources" -> s"$projectDir/src/main/java",
    "sonar.java.binaries" -> s"$projectDir/target/classes",
    "sonar.java.test" -> s"$projectDir/src/test/java",
    "sonar.java.test.binaries" -> s"$projectDir/target/test-classes",
    "sonar.java.coveragePlugin" -> "jacoco",
    "sonar.jacoco.reportPath" -> s"$projectDir/target/jacoco/jacoco.exec",
    "sonar.jacoco.itReportPath" -> s"$projectDir/target/it-jacoco/jacoco.exec"
)

【问题讨论】:

  • 您在 $projectDir/target/test-reports 中找到报告了吗?查看 SonarQube 日志以获取相关错误消息。

标签: java unit-testing sbt sonarqube


【解决方案1】:

我知道出了什么问题。我在日志中注意到,当我在日志级别设置为调试的情况下运行 Sonar 时,我收到了以下消息。

- parsing <directory>/target/test-reports
- Reports path contains no files matching TEST-.*.xml : <directory>/target/test-reports

我已正确设置我的“sonar.junit.reportsPath”,但 Sonar 期望我目录中的 xml 文件以“TEST-”开头。当我将 xml 文件重命名为以 TEST 开头时,结果会显示在仪表板上。

【讨论】:

    【解决方案2】:

    我遇到了类似的问题,jenkins 无法读取 jacoco 的 .exec 文件。检查 sonar-project.properties 后,我发现这两个字段是空的:

    sonar.junit.reportsPath=
    sonar.jacoco.reportPath=
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-19
      • 2023-04-01
      • 2017-05-16
      • 2014-02-21
      • 2014-04-06
      • 2021-01-03
      • 1970-01-01
      • 2018-03-01
      相关资源
      最近更新 更多