Partha Sarathi Ghosh
Partha Sarathi Ghosh

Reputation: 11576

angular cli exclude files/directory for `ng test --code-coverage`

I am running the following command to unit test and generate code code coverage report.

ng test --code-coverage

It is working fine and writing code coverage report in coverage folder.

In this I got all files and directory coverage report

enter image description here

But I want to exclude specific files/directory let say src/app/quote/services/generated. How to do that?

Upvotes: 56

Views: 45732

Answers (2)

delasteve
delasteve

Reputation: 2727

Updated September 2019

With Angular CLI 6, angular-cli.json has been renamed to angular.json which contains the configuration. In angular.json, codeCoverage expects a boolean value, which sets whether code-coverage should be done with every test run or not. To exclude files from code coverage, there is a property codeCoverageExclude which accepts an array of files to be excluded from code coverage.

angular.json

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

Updated answer

rc.0 has been released. You should be able to add the code snippet below to ignore files.

Original answer

Currently, you aren't able to do so in beta.32.3. A change is coming to allow this to happen. In the next release (probably rc.0), you will be able to do the following:

.angular-cli.json

"test": {
  "codeCoverage": {
    "exclude": [
      "src/app/quote/services/generated/**/*"
    ]
  },
  ...
}

Upvotes: 66

Greg
Greg

Reputation: 1067

With the latest CLI, inside 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/**/*"],

Upvotes: 76

Related Questions