我们正在使用某种自定义模板引擎,它包含普通的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
在这个项目中,我有js
和web
作为语言。如果我进入Sonar Qube UI并在 Measures&gt;下检查此项目覆盖范围&gt;测试,我没有看到任何导入的覆盖测试。所以我的问题是我是否理解JUnit coverage导入错误或者我在Sonar Qube配置中遗漏了什么?
答案 0 :(得分:0)
解决方案:
[value]
的JUnit报告中的<file path="[value]">
需要相对于sonar.tests=
值。
project
├── src
│ └── ...
└── spec
├── isml.spec.js
└── files.spec.js
所以在我的情况下,我使用了sed命令并修剪了路径的“绝对”部分。