SonarQube 和 Karma 代码覆盖率 - 未解析的文件路径

Posted

技术标签:

【中文标题】SonarQube 和 Karma 代码覆盖率 - 未解析的文件路径【英文标题】:SonarQube and Karma code coverage - unresolved file paths 【发布时间】:2016-08-22 12:25:49 【问题描述】:

我为这个特定的错误搜索了很多,但我没有机会找到合适的答案。

我有 SonarQube 5.4 并使用最新的 Karma 版本。

运行 sonar-runner 时出现以下错误:

INFO: Analysing /Users/foo/repository/BarJS/test/reports/coverage/lcov.info
INFO: Could not resolve 6 file paths in lcov.info, first unresolved path: /Users/foo/repository/BarJS/test/spec/Classname.test.js

而 foo 是我的用户名,而 BarJS 是项目的名称。

其他人因拼写错误或特定于大小写或相对路径而遇到这些错误。我检查了六次。 我的路径是正确的。

我的 Karma lcov.info 文件中有绝对路径。所有驼峰字母都与它们在 Finder 中的路径相同。

Karmas lcov.info 的内容

SF:/Users/foo/repository/BarJS/test/spec/Classname.test.js

有人遇到同样的问题吗?真的很烦

【问题讨论】:

您是否将此文件导入到 SQ 中? 是的,但不是手动的。我在我的项目文件夹中使用 sonar.properties 这个参数:sonar.javascript.lcov.reportPath 对不起,我的意思是文件“Classname.test.js” “sonar.sources”中是否包含“/Users/foo/repository/BarJS/test/spec/Classname.test.js”? @ElenaVilchik:不,不包括在内。只引用我的 JS 文件,而不是我的测试 【参考方案1】:

在我的情况下,解决方案是添加

sonar.tests=test/spec 

到我的 sonar.properties。现在它像魅力一样发挥作用

@ElenaVilchik:非常感谢您的指导,帮了很多忙

【讨论】:

【参考方案2】:

我也有同样的问题。声纳扫描仪日志将 first unresolved path: ./app/modules/abc.js 显示为错误。我的问题的原因是,我的 sonar-project.properties 文件位于父目录而不是 app 文件夹中。我可以通过将lcov.info 文件中的目录路径更改为来自sonar-project.properties 所在目录的相对路径来解决此问题。

例如:sonar-project.properties 文件位于名为 WebContent 的文件夹中。 lcov.info 文件将 SF:./app/modules/abc.js 显示为文件路径。将其更改为SF:./WebContent/app/modules/abc.js 后,测试结果发布到声纳没有任何问题。

【讨论】:

以上是关于SonarQube 和 Karma 代码覆盖率 - 未解析的文件路径的主要内容,如果未能解决你的问题,请参考以下文章

karma sonarqube unit 记者输出以 HTML 格式输出

SonarQube 没有从 lcov 读取 javascript 测试覆盖率

SonarQube 和 Lcov 报告无法解析文件路径

Sonarqube 默认覆盖范围为 0,来自具有绝对路径的 Karma Coverage LCOV 文件

lcov.info 没有被 sonarqube 扫描

使用 karma-jasmine 和 istanbul 的 Typescript 代码覆盖率