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 测试覆盖率