angular - 如何在 Bamboo for Angular 项目中生成代码覆盖率数据?
问题描述
我正在尝试为我在 Bamboo 中的一个项目填充代码覆盖率。根据 atlassian 文档,我们可以使用 Bamboo 提供的内置 clover 插件来获得代码覆盖率。但不幸的是,它没有显示任何代码覆盖率信息。有人已经为 Angular 项目集成了这个功能吗?
注意:构建是使用默认的 angular-cli 生成的,测试结果是由默认的 Karma 测试运行器和伊斯坦布尔报告器生成的。
解决方案
您的 Angular 项目不会“开箱即用”地提供 Clover 测试结果。相反,您将不得不进行一些项目修改并安装一些额外的包。我通过执行以下操作来完成此操作:
- 在 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 文件中(链接到 npm 包)。 - 在 Bamboo 中添加一个 JUnit Parser 任务,从
**/coverage/junit.xml
推荐阅读
- php - PHP:在 WordPress 中点击链接时通过 AJAX 下载文件
- javascript - setInterval 用于运行 if 语句不起作用的函数
- r - 使用 dplyr 包中的 select + unlist 和使用美元符号有什么区别?
- lua - 动态类型语言的编译器如何处理非局部变量的变化?
- javascript - jQuery FadeIn() 等不起作用,浏览器认为它们根本不起作用
- python - 如果发生异常,删除 JSON 文件
- go - 如何锁定地图并修复数据竞争
- php - 在文件名旁边添加图标
- javascript - React-Native 动态改变 fetch url
- python - 如何将模型导入我的控制台,以便我可以从我的数据库中查找它的实例?