Sonarqube Karma为具有无效行号的角度项目生成lcov报告

Sonarqube Karma为具有无效行号的角度项目生成lcov报告,sonarqube,browserify,istanbul,lcov,karma-coverage,Sonarqube,Browserify,Istanbul,Lcov,Karma Coverage,我有一个有一些测试的角度项目。我的身材是用大口大口大口地写的。我使用Karma运行测试并生成lcov报告 然后我使用gulp sonar插件运行sonar。我的声纳配置如下所示: "sonar": { "host": { "url": "http://mysonar.example.com.au" }, "projectKey": "sonar:advertising-test", "projectName": "advertising-test", "project

我有一个有一些测试的角度项目。我的身材是用大口大口大口地写的。我使用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覆盖率报告,那么该报告看起来很好,因此该报告似乎是正确生成的

我想知道这是否是由我使用的因果报应浏览步骤造成的

有人能帮我处理lcov报告错误吗


是否有人能够通过karma和browserify获得lcov覆盖报告?

我想我找到了解决方案。我还没有测试过它,但阅读文档表明,这是正确的方法

首先,问题不在于声纳,而在于业力。您的覆盖率报告是为已处理的typescript文件构建的,因此存在行问题

查看karma reporter npm套餐说明上的文件(粗体来自我):

这只是一个报告程序,不执行代码的实际插入。巴贝尔用户应使用伊斯坦布尔巴贝尔插件插入您的代码,webpack+typescript用户应使用伊斯坦布尔插入器加载程序,然后使用此karma reporter进行实际报告。有关如何组合它们的e2e示例,请参见测试配置

Angular或多或少是webpack+typescript

这里提出了使用伊斯坦布尔instrumenter loader的相同解决方案:


我建议我们重新配置我们的karma配置,以生成正确的lcov.info文件,并查看其结果。

您是否认为这方面存在问题?我觉得你犯的错误很清楚。撇开SonarQube不谈,我认为问题在于理解如何得到一份行号无效的报告。我也有这个。使用Sonar 5.3时效果很好,现在我在升级到Sonar 5.6时得到了这个问题。同样的问题,你使用ES6吗?你找到解决这个问题的方法了吗?