将JUnit报告推送到Sonar Qube

时间:2018-04-25 07:29:16

标签: javascript web junit sonarqube template-engine

我们正在使用某种自定义模板引擎,它包含普通的HTML语法和一些自定义标记,其中包含在服务器端执行的某种脚本。我们编写了一些单元测试来证明这些自定义模板的内容,并在使用了一些被禁止的脚本元素时引发错误。

我们正在使用Jest作为测试运行者,我们正在使用jest-sonar-reporter创建Sonar Qube测试报告。我已将sonar.tests设置为我们的测试sonar.tests=spec。在Sonar Qube UI中管理>网站区域,我也扩展了sonar.web.file.suffixes我们的扩展程序。当我们在部署管道中启动Sonar Qube时,我会在日志中看到

07:08:49.291 INFO: Sensor Generic Test Executions Report
07:08:49.291 WARN: Property 'sonar.genericcoverage.unitTestReportPaths' is deprecated. Please use 'sonar.testExecutionReportPaths' instead.
07:08:49.291 INFO: Parsing /codebuild/output/src915641274/src/reports/test-report.xml
07:08:49.491 INFO: Imported test execution data for 0 files
07:08:49.491 INFO: Test execution data ignored for 2 unknown files, including:
/codebuild/output/src943613774/src/spec/isml.spec.js
/codebuild/output/src943613774/src/spec/files.spec.js

我们的sonar-project.properties看起来像这样:

sonar.host.url=<host_url>
sonar.login=<token>

sonar.projectKey=<project_key>
sonar.projectName=<project_name>

sonar.sources=cartridge,spec

sonar.verbose=true

sonar.inclusions=**/js/**/*.js,**/templates/**/*.isml

sonar.tests=spec
sonar.testExecutionReportPaths=reports/test-report.xml

在这个项目中,我有jsweb作为语言。如果我进入Sonar Qube UI并在 Measures&gt;下检查此项目覆盖范围&gt;测试,我没有看到任何导入的覆盖测试。所以我的问题是我是否理解JUnit coverage导入错误或者我在Sonar Qube配置中遗漏了什么?

1 个答案:

答案 0 :(得分:0)

解决方案:

[value]的JUnit报告中的<file path="[value]">需要相对于sonar.tests=值。

project
├── src
│   └── ...
└── spec
    ├── isml.spec.js
    └── files.spec.js

所以在我的情况下,我使用了sed命令并修剪了路径的“绝对”部分。