In my Jest tested project I have *.entity.ts files. I don't want these files to be included in my coverage test.

According to the documentation at https://facebook.github.io/jest/docs/en/configuration.html#coveragepathignorepatterns-array-string there is a coveragePathIgnorePatterns setting which you can use in the package.json

I've tried regex and file patterns but none of these just ignores the *.entity.ts files in the final report.

When I add for example "coveragePathIgnorePatterns": ["common"] my tests won't even run anymore.

Any thoughts on how I can make Jest skip the *.entity.ts in the coverage tests?

My Jest section in the package.json looks like:

{"moduleFileExtensions": ["js","json","ts"],"rootDir": "src","testRegex": ".spec.ts$","transform": {"^.+\\.(t|j)s$": "ts-jest"},"coverageDirectory": "../coverage"}
4

Best Answer


I use an external JSON file to hold my Jest configuration and run it from my package.json using npm: jest --config jest.config.json --no-cache

jest.config.json

{"collectCoverage": true,"collectCoverageFrom": ["src/**/*.ts"],"coveragePathIgnorePatterns": ["node_modules","test-config","interfaces","jestGlobalMocks.ts",".module.ts","<rootDir>/src/app/main.ts",".mock.ts"],"coverageDirectory": "<rootDir>/coverage/","coverageThreshold": {"global": {"branches": 20,"functions": 30,"lines": 50,"statements": 50}},"mapCoverage": true,"preset": "jest-preset-angular","setupTestFrameworkScriptFile": "<rootDir>/src/setupJest.ts","transformIgnorePatterns": ["<rootDir>/node_modules/(?!@ionic-native|@ionic|@ngrx|angular2-ui-switch|angularfire2|jest-cli)"],"verbose": false}

My coverage does not include the files listed in the "coveragePathIgnorePatterns". Maybe the source line "/src/app/main.ts" is the entry you need.

You can add a ! mark in collectCoverageFrom parameter to exclude it from counting.Here any file inside a subfolder of src dir

 collectCoverage: true,collectCoverageFrom: ['src/**/*.ts','!src/*/filesToExclude.ts']

Also you can add to your package.js the following:

... // Other data"jest": {"coveragePathIgnorePatterns" : ["<rootDir>/src/index.js","<rootDir>/src/reportWebVitals.js"]}... // Other data

That's the only configuration you need to get it working

In my case the following rootDir jest parameter meant that the <rootDir> was the 'test' directory.

jest --rootDir=./test