如何在 Bamboo 中为 Angular 个项目生成代码覆盖率数据?

How to generate code coverage data in Bamboo for Angular projects?

我正在尝试为我在 Bamboo 中的一个项目填充代码覆盖率。根据 atlassian 文档,我们可以使用 Bamboo 提供的内置三叶草插件来获得代码覆盖率。但不幸的是,它没有显示任何代码覆盖率信息。有人已经为 Angular 个项目集成了此功能吗?

注意:构建是使用默认的 angular-cli 生成的,测试结果是由默认的 Karma 测试运行器和 Istanbul reporter 生成的。

您的 Angular 项目将不会提供 Clover 测试结果 "out of the box"。相反,您将不得不对项目进行一些修改并安装一些额外的包。我通过执行以下操作完成了此操作:

  1. 在 Bamboo 服务器上安装 ChromeHeadless
  2. 修改 package.json 以包含以下脚本(在脚本下):
"test": "ng test --code-coverage --watch=false --browsers=ChromeHeadless"
  1. 在项目目录
  2. 中使用命令run test创建一个npm任务
  3. 修改 karma.js 以满足您的需要。我不得不修改 outputDir、outputFile,并将记者更改为 junit。我还添加了以下几行:
coverageIstanbulReporter: {
      dir: require('path').join(__dirname, 'coverage'), reports: ['json-summary', 'lcovonly', 'clover'],
      fixWebpackSourcePaths: true
    },
  1. 确保 karma-coverage-istanbul-reporterkarma-junit-reporter 已安装并存在于 package.json 文件中 (link to npm package)。
  2. 在 Bamboo 中添加一个 JUnit 解析器任务,从 **/coverage/junit.xml
  3. 获取结果