我配置了 karma,这为我提供了完美的覆盖率报告。
它给了我 lcov 格式。
引用这个http://docs.sonarqube.org/display/PLUG/JavaScript+Coverage+Results+Import
lcov报告可以上传到 Sonar 。
我已经在 Sonar 中安装了该插件。 我的项目是通过 ant 脚本构建的,所以我添加了
<property name="sonar.javascript.lcov.reportPath" value="/lcov.info"/>
我在一些博客上读到,lcov 需要进行修正,以便 Sonar 能够理解它。我已经完成了。
因此 lcov 已生成并且格式正确。
由于某种原因, Sonar 无法找到我的 lcov 报告并且无法解析该报告。我检查了我的路径是正确的。
我错过了什么吗?
任何帮助将不胜感激。
最佳答案
lcov.info 可能有不正确的文件路径。其他工具(如工作服)工作正常, Sonar 预计相对路径。这是我的 lcov.info 的样子。 /source/app/simplebind/child.component.ts 不正确,sonarqube 预期 src/app/simplebind/child.component.ts
TN:
SF:/source/app/simplebind/child.component.ts
FN:11,(anonymous_3)
FN:17,ChildComponent
FN:22,(anonymous_5)
FNF:3
FNH:3
FNDA:1,(anonymous_3)
FNDA:3,ChildComponent
FNDA:1,(anonymous_5)
DA:1,1
DA:3,1
DA:11,1
使用以下命令替换lcov.info中的文件路径。您可以在从 jenkins shell 进行 gulp 构建后执行它。
sed -i -- 's/\/source/src/g'report/remap/lcov.info
也适用于 Angular2 Typescript Sonar 插件。 https://github.com/Pablissimo/SonarTsPlugin
关于javascript - 如何将karma测试报告上传到 Sonar ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37164545/