【问题标题】:JavaScript Unit Tests not working on SonarQubeJavaScript 单元测试不适用于 SonarQube
【发布时间】:2016-03-22 22:40:22
【问题描述】:

SonarRunner 有以下问题。

SonarQube 和 Sonar runner 无法提取 junit 格式的 xml 报告

单元测试或测试覆盖率小部件不显示。它说没有数据。 我正在按照here 描述的说明进行操作

我按照描述手动创建了 XML 格式的报告文件,但仍然没有成功。

下面是 XML 文件 - TEST-Firefox_210_Mac_OS.com.company.BarTest.xml,

<testsuite name="Firefox_210_Mac_OS.com.company.BarTest" errors="0" failures="0" tests="3" time="0.0">
  <testcase classname="Firefox_210_Mac_OS.com.company.BarTest" name="testfullName" time="0.0"/>
</testsuite>

拉取单元测试执行报告以显示在声纳仪表板上。我使用了来自here的示例git项目

以下是我的sonar-project.properties

# project metadata (required)
sonar.projectKey=org.codehaus.sonar:javascript-sonar-runner-jstestdriver
sonar.projectName=JavaScript project with Sonar Runner reusing reports generated by JsTestDriver
sonar.projectVersion=1.0

# path to source directories (required)
sonar.sources=C:/Sonar/sonar-runner-dist-2.4/sonar-runner-2.4/projects/sources

# path to tests source directories (required)
sonar.tests=C:/Sonar/sonar-runner-dist-2.4/sonar-runner-2.4/projects/tests

sonar.javascript.jstestdriver.reportsPath=C:/Sonar/sonar-runner-dist-2.4/sonar-runner-2.4/projects/target/TEST-Firefox_210_Mac_OS.com.company.BarTest.xml


sonar.sourceEncoding=UTF-8

下面是我的 jsTestDriver.conf

server: http://localhost:9876

load:
 - C:/Sonar/sonar-runner-dist-2.4/sonar-runner-2.4/projects/sources/*.js
 - C:/Sonar/sonar-runner-dist-2.4/sonar-runner-2.4/projects/sources/com/company/*.js
test:
 - C:/Sonar/sonar-runner-dist-2.4/sonar-runner-2.4/projects/tests/*.js
 - C:/Sonar/sonar-runner-dist-2.4/sonar-runner-2.4/projects/tests/com/company/*.js

plugin:
 - name: "coverage"
   jar: "coverage-1.3.5.jar"
   module: "com.google.jstestdriver.coverage.CoverageModule"

我的 sonarqube 在端口:9000 及以下是屏幕截图。如您所见,SonarRunner 和 jsTestDriver只是进行代码分析,不显示任何单元测试

【问题讨论】:

  • SonarQube 文档网站没有提到关于 js-test-driver 的任何内容。它只是说它将导入 js-test-driver 的报告。
  • 谢谢。编辑了我的帖子。
  • 我缺少任何插件吗?阅读这份报告需要什么插件?

标签: sonarqube sonar-runner sonarqube-4.5 js-test-driver


【解决方案1】:

SonarQube 文档网站说 jsTestDriver 将运行 javascript 单元 测试并将结果以 XML 格式复制到目标文件夹中

SonarQube 不运行您的单元测试,它只是收集您手动运行或其他工具自动运行(如:Jenkins)生成的报告。

来自 SonarQube 文档:

在 SonarQube 分析之前,执行单元测试以 生成 XML 报告。支持的类似 XML 格式的 JUnit 是一种 由js-test-driver生成


然后我按照描述手动创建了 XML 格式的报告文件,但是 还是没有运气。

如果您手动创建报告文件并且报告仍未显示,请检查您的路径是否正常。检查声纳是否真的从C:/Sonar/sonar-runner-dist-2.4/sonar-runner-2.4/projects/ 路径读取数据

【讨论】:

  • 我已经检查了路径及其正确性。但仍然没有运气。
  • 我缺少任何插件吗?阅读这份报告需要什么插件?
  • 检查sonar-project.properties是否在你项目的根路径中
  • 是的..它就在那里。否则分析将不起作用。
  • 然后检查QualityProfiles是否设置满足您的要求
猜你喜欢
  • 1970-01-01
  • 2019-03-21
  • 1970-01-01
  • 1970-01-01
  • 2018-11-08
  • 1970-01-01
  • 2019-04-25
  • 2016-11-13
  • 1970-01-01
相关资源
最近更新 更多