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" }
By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules".
coveragePathIgnorePatterns [array<string>] Use the <rootDir> string token to include the path to your project's root directory to prevent it from accidentally ignoring all of your files in different environments that may have different root directories. Example: ["<rootDir>/build/", "<rootDir>/node_modules/"] .
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']
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With