如何为Angular项目“启用sonarqube中的前端代码覆盖”

时间:2019-06-13 09:24:43

标签: angular sonarqube angular-cli bamboo test-coverage

这是我与竹子有关的Sonarqube的dahsboard: https://imgur.com/a/yOq6iGp

项目构建结果页面如下所示: https://imgur.com/Z126mr7

因此,我想以某种方式在Bamboo中启用测试覆盖率以查看单元测试报告。 我提到我们的棱角项目有本地覆盖。

您能帮我吗?

2 个答案:

答案 0 :(得分:0)

您是将结果输出到某种文件还是试图直接从SonarQube获得结果?

通常,通过添加Test Parser任务并将其指向受支持的测试输出文件,将测试结果发布在Bamboo中。

尽管Atlassian在writing your own test collector and reporter上确实有一些不错的文章,所以您可能可以编写一个自定义解析器以直接通过SonarQube通过其API报告。

答案 1 :(得分:0)

您需要将结果转换为SonarQube可以解释的格式。假设您使用的是Jasmine / Karma,这将是LCOV格式。

  1. 修改您的构建脚本以包括以下行:

    ng test --code-coverage

  2. 这应该在您的角度项目中创建coverage文件夹。但是它将是html格式。您还需要更改Karma运行程序,以便它生成lcov.info文件:

    // karma.conf.js
    // ....
    coverageIstanbulReporter: {
       dir: require('path').join(__dirname, '../coverage'),
       reports: ['lcovonly'],
       fixWebpackSourcePaths: true
    },
    // ....
    
  3. 最后,用以下行更新sonar-project.properties文件,以便SonarQube知道在哪里可以找到覆盖范围:

    sonar.typescript.lcov.reportPaths=coverage/lcov/lcov.info