【问题标题】:sonarQube displaying code coverage 0% in scalasonarQube 在 Scala 中显示代码覆盖率 0%
【发布时间】:2021-03-01 19:52:22
【问题描述】:

我正在使用sonarQube-8.5.1.38104,我在我的 scala 项目中使用它并遵循了这个link 这是我的plugins.sbt 文件

addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.6.1")

addSbtPlugin("com.github.mwz" % "sbt-sonar" % "2.2.0")

这是我的build.sbt 文件

import sbtsonar.SonarPlugin.autoImport.sonarUseExternalConfig

coverageEnabled := true

sonarProperties ++= Map(
  "sonar.host.url" -> "http://127.0.0.1:9000",
  "sonar.projectName" -> "myproject-backend",
  "sonar.projectKey" -> "sonar-myproject-backend",
  "sonar.sources" -> "src/main/scala-2.13",
  "sonar.tests" -> "src/test/scala-2.13",
  "sonar.junit.reportPaths" -> "target/test-reports",
  "sonar.sourceEncoding" -> "UTF-8",
  "sonar.scala.scoverage.reportPath"->"target/scala-2.13/scoverage-report/scoverage.xml",
  "sonar.scala.scapegoat.reportPath" -> "target/scala-2.13/scapegoat-report/scapegoat.xml"
)

已关注sbt-scoverage

然后我做到了 -> sbt -> coverage -> test -> coverageReport 生成报告

[info] Written Cobertura report [/home/user/git/myproject/target/scala-2.13/coverage-report/cobertura.xml]
[info] Written XML coverage report [/home/user/git/myproject/target/scala-2.13/scoverage-report/scoverage.xml]
[info] Written HTML coverage report [/home/user/git/myproject/target/scala-2.13/scoverage-report/index.html]
[info] Statement coverage.: 38.67%
[info] Branch coverage....: 31.58%

然后我做了

sonarScan

并在http://127.0.0.1:9000/dashboard?id=myproject-backend查看报告

然后代码覆盖率显示0.0%和单元测试-

我已经检查了报告存在于

target/scala-2.13/scoverage-report/scoverage.xml
target/scala-2.13/scapegoat-report/scapegoat.xml

类测试报告存在于

target/test-reports

com.myproject.test.abctest.EventTest.xml               com.myproject.test.xyztest.FileUploadTest.xml  TEST-com.myproject.test.xyztest.DirectoryCreationTest.xml
com.myproject.test.abctest.QueryEventTest.xml                TEST-com.myproject.test.abctest.InsertEventTest.xml   TEST-com.myproject.test.xyztest.FileUploadTest.xml
com.myproject.test.xyztest.DirectoryCreationTest.xml  TEST-com.myproject.test.abctest.QueryEventTest.xml

为什么我的代码覆盖率是 0% 呢?我在这里想念什么?请指导,谢谢

【问题讨论】:

    标签: scala sonarqube sbt


    【解决方案1】:

    我给错了钥匙 正确的密钥是

    "sonar.scala.coverage.reportPaths"->"target/scala-2.13/scoverage-report/scoverage.xml",
    "sonar.scala.scapegoat.reportPaths" -> "target/scala-2.13/scapegoat-report/scapegoat-scalastyle.xml"
    

    之后我能够获得代码覆盖率%,但单元测试计数仍然缺失,因为我认为声纳现在不支持它,这里没有在测试执行中提到 scala https://docs.sonarqube.org/latest/analysis/coverage/

    【讨论】:

      【解决方案2】:

      感谢@swaheed, 由于声誉限制,我无法为您的帖子添加评论。

      我们在使用 sonar-scala 时也遇到了这个问题。我们发现代码覆盖率可以通过以下属性显示:

      对于 SonarQube 版本 8.6:需要使用 @swaheed 提到的 sonar.scala.coverage.reportPaths。

      "sonar.scala.coverage.reportPaths"->"target/scala-2.13/scoverage-report/scoverage.xml"

      对于 SonarQube 版本 8.7.1 社区(我按照这个 docker-compose 来调出 SonarQubeDocker https://github.com/sonar-scala/sonar-scala-docker/blob/master/docker-compose.yml),以下任一属性都有效

      "sonar.scala.coverage.reportPaths"->"target/scala-2.13/scoverage-report/scoverage.xml"

      或

      "sonar.scala.scoverage.reportPath"->"target/scala-2.13/scoverage-report/scoverage.xml"

      【讨论】:

      • 我似乎找不到任何与sonar.scala.scoverage.reportPath 相关的文档,您能提供链接吗?
      猜你喜欢
      • 2020-08-07
      • 2019-12-23
      • 2020-08-13
      • 2016-04-08
      • 2022-09-25
      • 2017-05-31
      • 2020-02-25
      • 1970-01-01
      • 2019-08-12
      相关资源
      最近更新 更多