1

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

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

我已经在我的 Javascript 插件设置中指定了这些文件的位置。正如我发现的文档和一些论坛帖子所示,我使用相对目录路径 test/results 来获取实际的单元测试结果(显示效果很好),使用相对文件名 test/results/code-coverage.dat 来获取覆盖率报告。我也尝试将文件指定为绝对路径,但没有帮助。

任何见解将不胜感激。

4

1 回答 1

0

多亏了 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 能够使用 extraneoud \.\ 很好地读取我的文件,所以这似乎是 Sonar 非常挑剔的问题。

于 2013-09-13T13:57:09.433 回答