【发布时间】:2016-10-02 21:39:39
【问题描述】:
我有一个带有一些测试的 Angular 项目。我的构建是用 Gulp 编写的。我使用 Karma 运行测试并生成 lcov 报告。
然后我使用 gulp-sonar 插件来运行 Sonar。我的声纳配置如下所示:
"sonar": {
"host": {
"url": "http://mysonar.example.com.au"
},
"projectKey": "sonar:advertising-test",
"projectName": "advertising-test",
"projectVersion": "1.0.0",
"sources": "app/js",
"javascript": {
"lcov": {
"reportPath": "reports/coverage/lcov.info"
}
},
"exec": {
"maxBuffer": "1048576"
}
}
Sonar 运行并分析代码,但在尝试读取 lcov 报告时失败:
[09:38:58] 09:38:58.322 WARN - Problem during processing LCOV report: can't save DA data for line 0.
java.lang.IllegalArgumentException: Line with number 0 doesn't belong to file app/js/main.js
...
[09:38:58] 09:38:58.324 WARN - Problem during processing LCOV report: can't save DA data for line 65.
java.lang.IllegalArgumentException: Line with number 65 doesn't belong to file app/js/constants.js
我拥有的几乎每个 js 文件都以此类推。
如果我生成一个 html 覆盖率报告,那么报告看起来很好,因此报告似乎正在正确生成。
我想知道这是否是由我使用的 karma-browserify 步骤引起的。
有人可以帮助我的 lcov 报告错误吗?
有没有人设法使用 karma 和 browserify 获得 lcov 覆盖率报告?
【问题讨论】:
-
你觉得SonarQube端有问题吗?你得到的错误对我来说似乎很清楚。撇开 SonarQube 不谈,我认为问题在于了解如何获得包含无效行号的报告。
-
我也有这个。使用 Sonar 5.3 时工作正常,现在升级到 Sonar 5.6 时我得到了这个。
-
同样的问题,你用的是 ES6 吗?
-
你找到解决这个问题的方法了吗?
标签: sonarqube browserify istanbul lcov karma-coverage