Javascript 把JUnit报告推到Sonar Qube

Javascript 把JUnit报告推到Sonar Qube,javascript,web,junit,sonarqube,template-engine,Javascript,Web,Junit,Sonarqube,Template Engine,我们正在使用某种自定义模板引擎,它包含正常的HTML语法和一些自定义标记,除此之外,它还可以包含某种在服务器端执行的脚本。我们编写了一些单元测试来证明这些自定义模板的内容,并在使用了一些被禁止的脚本元素时出错 我们使用Jest作为测试运行程序,并使用Jest Sonar reporter创建Sonar Qube测试报告。我已经设置了sonar.tests,将我们的测试指向sonar.tests=spec。在管理>Web区域下的Sonar Qube UI中,我用扩展名扩展了Sonar.Web.fi

我们正在使用某种自定义模板引擎,它包含正常的HTML语法和一些自定义标记,除此之外,它还可以包含某种在服务器端执行的脚本。我们编写了一些单元测试来证明这些自定义模板的内容,并在使用了一些被禁止的脚本元素时出错

我们使用Jest作为测试运行程序,并使用
Jest Sonar reporter
创建Sonar Qube测试报告。我已经设置了
sonar.tests
,将我们的测试指向
sonar.tests=spec
。在管理>Web区域下的Sonar Qube UI中,我用扩展名扩展了
Sonar.Web.file.后缀
。当我们在部署管道中启动声纳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
sonar.host.url=
sonar.login=
声纳.投影键=
sonar.projectName=
声纳。来源=弹药筒,规格
sonar.verbose=true
sonar.includes=***/js/***.js,***/templates/***.isml
声纳测试=规范
sonar.TestExecutionReportPath=reports/test-report.xml
在这个项目中,我将
js
web
作为语言。如果我进入Sonar Qube UI并在度量值>覆盖率>测试中检查该项目,我看不到导入任何覆盖率测试。所以我的问题是,我是否理解JUnit覆盖率导入错误,或者我的Sonar Qube配置中缺少了什么?

解决方案:

JUnit报告中位于
[值]
需要与
声纳相关。测试=

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

因此,在我的例子中,我使用了sed命令并修剪了路径的“绝对”部分。

您的测试报告似乎包含绝对文件路径(“/codebuild/…”),这些路径是否确实存在,或者前面的斜杠是否有误?我刚刚检查了生成的XML报告,文件路径是绝对的
。这是否意味着我的文件路径应该从
spec/isml.spec.js
开始。这可能是因为您的包含影响了这一点。尝试删除该参数并重新分析该参数我应该删除或注释掉吗<代码>sonar.includes=***/js/***.js,***/templates/***.isml。问题是,我会在Sonar Qube中得到一些我不想要的其他文件。当你们使用包含时,你们说的是“只分析这些文件”,我相信这排除了你们的测试。如果您真的想缩小集合范围,请尝试设置(最好通过UI)排除。