如何排除`ng test --code-coverage`的所有*services.ts?

Posted

技术标签:

【中文标题】如何排除`ng test --code-coverage`的所有*services.ts?【英文标题】:How can I exclude all *services.ts for `ng test --code-coverage`? 【发布时间】:2019-06-16 06:04:33 【问题描述】:

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

ng test --browsers=Chrome --watch=false --code-coverage

它工作正常并在覆盖文件夹中编写代码覆盖率报告。

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

但我想排除特定类型的文件:

所有具有服务前缀的文件:*.service.ts

我已经在 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/*.service.ts"],

但这没有用

建议?

【问题讨论】:

【参考方案1】:

试试这样的:

"codeCoverageExclude": [
  "/**/*service*.ts"
]

【讨论】:

【参考方案2】:

在您的 Test.ts 文件中,您必须编写如下:

const context = require.context('', true, /\.component.spec\.ts$/);
context.keys().map(context);

【讨论】:

以上是关于如何排除`ng test --code-coverage`的所有*services.ts?的主要内容,如果未能解决你的问题,请参考以下文章