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"}
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