javascript - 如何将karma测试报告上传到 Sonar ?

标签 javascript ant jasmine sonarqube karma-runner

我配置了 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/

相关文章:

java - 如何说 ant 配置文件位于该文件夹中

javascript - spyOn 静态方法 - Jasmine ES6

javascript - 获取失败的 Jasmine 单元测试列表

javascript - ECMA6 指令的动态 Controller

javascript - jquery - 如何使用 '.first()' 之后选择元素?

javascript - 如何用正则表达式替换特定的 JavaScript 注释?

使用 clientWidth 时 AngularJS 单元测试错误

javascript - axios没有返回与参数对象的查询字符串匹配的数据,而是返回vanila JS中的所有数据

javascript - WebGL 片段着色器构造函数错误 - 参数太多

javascript - 使用 Ant 更新配置文件