如何在 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"。相反,您将不得不对项目进行一些修改并安装一些额外的包。我通过执行以下操作完成了此操作:
- 在 Bamboo 服务器上安装 ChromeHeadless
- 修改
package.json
以包含以下脚本(在脚本下):
"test": "ng test --code-coverage --watch=false --browsers=ChromeHeadless"
- 在项目目录
中使用命令run test
创建一个npm任务
- 修改 karma.js 以满足您的需要。我不得不修改 outputDir、outputFile,并将记者更改为 junit。我还添加了以下几行:
coverageIstanbulReporter: {
dir: require('path').join(__dirname, 'coverage'), reports: ['json-summary', 'lcovonly', 'clover'],
fixWebpackSourcePaths: true
},
- 确保
karma-coverage-istanbul-reporter
和 karma-junit-reporter
已安装并存在于 package.json 文件中 (link to npm package)。
- 在 Bamboo 中添加一个 JUnit 解析器任务,从
**/coverage/junit.xml
获取结果
我正在尝试为我在 Bamboo 中的一个项目填充代码覆盖率。根据 atlassian 文档,我们可以使用 Bamboo 提供的内置三叶草插件来获得代码覆盖率。但不幸的是,它没有显示任何代码覆盖率信息。有人已经为 Angular 个项目集成了此功能吗?
注意:构建是使用默认的 angular-cli 生成的,测试结果是由默认的 Karma 测试运行器和 Istanbul reporter 生成的。
您的 Angular 项目将不会提供 Clover 测试结果 "out of the box"。相反,您将不得不对项目进行一些修改并安装一些额外的包。我通过执行以下操作完成了此操作:
- 在 Bamboo 服务器上安装 ChromeHeadless
- 修改
package.json
以包含以下脚本(在脚本下):
"test": "ng test --code-coverage --watch=false --browsers=ChromeHeadless"
- 在项目目录 中使用命令
- 修改 karma.js 以满足您的需要。我不得不修改 outputDir、outputFile,并将记者更改为 junit。我还添加了以下几行:
run test
创建一个npm任务
coverageIstanbulReporter: {
dir: require('path').join(__dirname, 'coverage'), reports: ['json-summary', 'lcovonly', 'clover'],
fixWebpackSourcePaths: true
},
- 确保
karma-coverage-istanbul-reporter
和karma-junit-reporter
已安装并存在于 package.json 文件中 (link to npm package)。 - 在 Bamboo 中添加一个 JUnit 解析器任务,从
**/coverage/junit.xml
获取结果