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

时间:2019-01-22 17:50:50

标签: javascript angular6 karma-jasmine karma-runner karma-coverage

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

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

它工作正常,并且在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"],

但这没用

建议?

2 个答案:

答案 0 :(得分:1)

在您的Test.ts文件中,您必须这样编写:

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

答案 1 :(得分:0)

尝试这样的事情:

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