如何排除`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?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Visual Studio Test Runner中排除某些测试?

linux文件夹内文件复制,如何排除某个文件

业力覆盖包括 node_modules

如何在发布中排除测试用例(gTest)

如何使用 ng-bind-html 插入 Angular 1.5 组件

当我使用最新的 angular-cli(beta 15 w/webpack)运行 ng test 时,如何提供资产?