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

标签 angular unit-testing continuous-integration code-coverage bamboo

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

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

最佳答案

您的 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-reporterkarma-junit-reporter安装并存在于 package.json 文件 ( link to npm package ) 中。
  • 在 Bamboo 中添加一个 JUnit Parser 任务,从 **/coverage/junit.xml 获取结果
  • 关于angular - 如何在 Bamboo 中为 Angular 项目生成代码覆盖率数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58119239/

    相关文章:

    html - 如何在 Angular 的单个服务文件中传递来自不同方法的值?

    ruby-on-rails - 使用 angular2-token 包成功登录后,rails 4 API 给出 ​​401 未经授权的响应

    java - 在 1 个测试方法中使用 junit @Rule、expectMessage()、匹配器来处理多个异常

    unit-testing - 你如何验证一个请求是用 axios-mock-adapter 发出的?

    powershell - 如何使用Jenkins Multi-Configuration(矩阵)类型的项目?

    Angular 6 - i18n 与 ngx-translate

    angular 2 - 在 TestComponent 上找不到指令注释

    python - 如何在 Python 中进行 "performance-based"(基准)单元测试

    docker - 通过 Gitlab CI/CD 将 docker 服务部署到自己的服务器的正确方法

    documentation - 如何在持续集成下管理项目的最终用户文档?