Bas van Dijk
En mi proyecto Jest probado tengo *.entity.ts
archivos No quiero que estos archivos se incluyan en mi prueba de cobertura.
Según la documentación en https://facebook.github.io/jest/docs/en/configuration.html#coveragepathignorepatterns-array-string hay un coveragePathIgnorePatterns
ajuste que puede utilizar en el package.json
Probé patrones de archivos y expresiones regulares, pero ninguno de estos simplemente ignora el *.entity.ts
archivos en el informe final.
Cuando agrego por ejemplo "coveragePathIgnorePatterns": ["common"]
mis pruebas ni siquiera se ejecutarán más.
¿Alguna idea sobre cómo puedo hacer que Jest se salte el *.entity.ts
en las pruebas de cobertura?
Mi sección Jest en el paquete.json se ve así:
{
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "src",
"testRegex": ".spec.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"coverageDirectory": "../coverage"
}
Uso un archivo JSON externo para mantener mi configuración de Jest y ejecutarlo desde mi package.json
usando 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
}
Mi cobertura no incluye los archivos enumerados en “coveragePathIgnorePatterns”. Tal vez la línea fuente “/src/app/main.ts” sea la entrada que necesita.
-
Recordatorio simple: los patrones de ruta son expresiones regulares
– Sebastián H.
22 de julio de 2021 a las 8:56
-
coveragePathIgnorePatterns
era la respuesta que estaba buscando. Votado a favor.– danivicario
30 de junio de 2022 a las 15:51
Pablo Gourab
Puedes agregar un ! marque en el parámetro collectCoverageFrom para excluirlo del conteo. Aquí cualquier archivo dentro de una subcarpeta de src dir
collectCoverage: true,
collectCoverageFrom: ['src/**/*.ts','!src/*/filesToExclude.ts']
-
Yo estoy confundido ahora. hace un ! (no) dentro de collectCoverageFrom significa lo mismo que mantener ese archivo regex dentro de la coberturaPathIgnorePatterns?
– etotientz
17 mayo 2022 a las 14:35
También puede agregar a su package.js
la siguiente:
... // Other data
"jest": {
"coveragePathIgnorePatterns" : [
"<rootDir>/src/index.js",
"<rootDir>/src/reportWebVitals.js"
]
}
... // Other data
Esa es la única configuración que necesita para que funcione
-
comienza a arrojar errores de babel al hacer esto
– efkah
8 de febrero a las 13:22
en mi caso lo siguiente rootDir El parámetro jest significaba que
jest --rootDir=./test