SonarQube 始终显示 Javascript 项目的 0.0% 代码覆盖率

SonarQube always displays 0.0% code coverage for Javascript project

本文关键字:代码覆盖率 项目 Javascript 显示 SonarQube      更新时间:2023-09-26

我是SonarQube的新手,正在尝试在Windows上将其与Javascript项目一起使用。 我已经尽我所能地遵循了文档,并成功地看到了静态代码分析声纳所做的。

我正在使用 JsTestDriver 进行单元测试,并生成代码覆盖率报告文件。 我在 SonarQube 中看到测试结果,但代码覆盖率始终报告为 0.0%。 如果我未指定代码覆盖率报告文件,或者指定不存在的文件名,则仪表板中的代码覆盖率块根本不显示,因此我知道 Sonar 在某种意义上看到了该文件。 我已经对文件运行了jGenHtml,它产生了正确的HTML输出,以及我期望的结果,所以我知道该文件有内容并且格式正确。

我已经在我的Javascript插件设置中指定了这些文件的位置。 正如我找到的文档和一些论坛帖子所示,我对实际单元测试结果(显示正常)使用了相对目录路径测试/结果,对覆盖率报告使用了相对文件名测试/结果/代码覆盖率.dat。我也尝试将文件指定为绝对路径,但没有帮助。

任何见解将不胜感激。

这现在正在工作,这要归功于David RACODON的建议评论。

似乎我的代码覆盖率报告包含如下所示的文件路径:

SF:H:''perforce_workspaces''atlasjs_main''.''test''lib''jquery-1.8.2.js

我编辑了文件以删除中间的''.''位,现在Sonar能够导入该文件。

示例

项目的覆盖率报告在其路径中没有此内容,并且我注意到我一直在使用比示例应用程序稍新的 jsTestDriver 版本。 我使用的是 1.3.5,而示例应用程序附带 1.3.4.b。 我不知道他们是否在覆盖插件的修订之间更改了输出格式,或者这是否是我的项目的特定内容。 无论如何,我应该能够找到一种方法来防止或删除冒犯性的字符。

请注意,jgenhtml 能够很好地读取我的文件,因此这似乎是 Sonar 非常挑剔的问题。