Angular cli 排除 `ng test --code-coverage` 的文件/目录

问题描述 投票:0回答:2

我正在运行以下命令来进行单元测试并生成代码代码覆盖率报告。

ng test --code-coverage

它工作正常,并在

coverage
文件夹中编写代码覆盖率报告。

在此我获得了所有文件和目录覆盖率报告

enter image description here

但我想排除特定文件/目录,比如说

src/app/quote/services/generated
。如何做到这一点?

angular karma-runner angular-cli istanbul
2个回答
74
投票

使用最新的 CLI,在 angular.json 中

  "test": {
          "builder": "@angular-devkit/build-angular:karma",
          "options": {
            "main": "src/test.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "src/tsconfig.spec.json",
            "karmaConfig": "./karma.conf.js",
            "codeCoverageExclude": ["src/testing/**/*"],

62
投票

2019 年 9 月更新

在 Angular CLI 6 中,angular-cli.json 已重命名为包含配置的 angular.json。在

angular.json
中,
codeCoverage
需要一个布尔值,该值设置是否应在每次测试运行时完成代码覆盖。要从代码覆盖范围中排除文件,有一个属性
codeCoverageExclude
接受要从代码覆盖范围中排除的文件数组。

angular.json

"test": {
  "options": {
    "codeCoverageExclude": ["src/assets/vendor/**"],
    ...
  },
  ...
}

更新答案

rc.0
已发布。您应该能够添加下面的代码片段来忽略文件。

原答案

目前,您无法在

beta.32.3
中执行此操作。一场变革即将到来,让这一切得以实现。在下一个版本中(可能是
rc.0
),您将能够执行以下操作:

.angular-cli.json

"test": {
  "codeCoverage": {
    "exclude": [
      "src/app/quote/services/generated/**/*"
    ]
  },
  ...
}
© www.soinside.com 2019 - 2024. All rights reserved.