Estoy tratando de pasar un archivo de configuración a Jest para ejecutar pruebas solo desde un directorio determinado.
Según la documentación, puede usar config.testPathDirs : https://facebook.github.io/jest/docs/api.html#config-testpathdirs-array-string y puede llamar a jest --config=<config-file> .
Desafortunadamente, la documentación no incluye ninguna descripción de cómo debería verse el archivo de configuración.
Probé ambas opciones en un archivo jest-config.js :
testPathDirs = ['coredata/src'];y
config.testPathDirs(['coredata/src']);y corrió:
$ jest --config=jest-config.js... pero me sale este tipo de error:
$ jest --config=jest-config.js Using Jest CLI v0.4.0 Failed with unexpected error. /Users/carles/dev/azazo/coredata/node_modules/jest-cli/src/jest.js:179 throw error; ^ SyntaxError: Unexpected token c at Object.parse (native) at /Users/carles/dev/azazo/coredata/node_modules/jest-cli/src/lib/utils.js:291:23 at _fulfilled (/Users/carles/dev/azazo/coredata/node_modules/jest-cli/node_modules/q/q.js:798:54) at self.promiseDispatch.done (/Users/carles/dev/azazo/coredata/node_modules/jest-cli/node_modules/q/q.js:827:30) at Promise.promise.promiseDispatch (/Users/carles/dev/azazo/coredata/node_modules/jest-cli/node_modules/q/q.js:760:13) at /Users/carles/dev/azazo/coredata/node_modules/jest-cli/node_modules/q/q.js:574:44 at flush (/Users/carles/dev/azazo/coredata/node_modules/jest-cli/node_modules/q/q.js:108:17) at process._tickCallback (node.js:419:13)Descubrí que el archivo de configuración es JSON.
{ "testPathDirs": ["coredata/src"] }Desafortunadamente, no encontré en ninguna parte de la documentación una pista sobre esto.
Me parece que puede configurar jest directamente dentro de su package.json , consulte https://github.com/shidhincr/react-jest-gulp-jspm-seed/blob/master/package.json .
{ "name": "react-jest-gulp-seed", "version": "1.0.0", "description": "Seed for React Jest Gulp Project", "main": "index.js", "scripts": { "test": "jest", "postinstall": "jspm install" }, "jest": { "scriptPreprocessor": "./preprocessor.js", "testPathIgnorePatterns": [ "/node_modules/", "/jspm_packages" ], "unmockedModulePathPatterns": [ "./node_modules/react" ] }, "author": "Shidhin CR <shidhincr@gmail.com> (http://www.undefinednull.com/)", "license": "ISC", "dependencies": { "del": "^1.1.1", "gulp": "^3.8.11", "gulp-filter": "^2.0.2", "gulp-load-plugins": "^0.10.0", "gulp-react": "^3.0.1", "gulp-shell": "^0.4.1", "harmonize": "^1.4.1", "jest-cli": "^0.4.1", "jspm": "^0.15.5", "react": "^0.13.2", "react-tools": "^0.13.2", "run-sequence": "^1.1.0" }, "devDependencies": { "browser-sync": "^2.7.1", "gulp": "^3.8.11" }, "jspm": { "directories": {}, "dependencies": { "react": "npm:react@^0.13.2" }, "devDependencies": { "babel": "npm:babel-core@^5.1.13", "babel-runtime": "npm:babel-runtime@^5.1.13", "core-js": "npm:core-js@^0.9.4" } } }A partir de la fecha actual del 5 de octubre de 2018, pude configurar un archivo de configuración de jest con facilidad, sin necesidad de que esté en formato JSON.
Mi sección de scripts de package.json:
"scripts": { "start": "node server.js", "dev": "webpack-dev-server --hot --inline", "test": "jest --config ./jest-config.js", "build": "webpack", "postinstall": "webpack" }Decidí mantener el archivo jest-config en la ruta raíz junto con package.json, así es como apunta, pero puedes ponerlo donde quieras. Aquí está el archivo de configuración, aunque un poco corto:
module.exports = { verbose: true, setupTestFrameworkScriptFile: "./enzyme.js", roots: [ "../__tests__" ], modulePaths: [ "./__stubs__" ], moduleNameMapper: { ".scss$": "scss-stub.js" } }La documentación de Jest en la sección "Configuración de Jest" ( enlace aquí ) dice que puede crearlo con un objeto module.exports. Incluyen una advertencia que dice: "Tenga en cuenta que la configuración resultante debe ser JSON serializable", lo que aumenta la confusión. "¡Excelentes pruebas de Javascript!" ¡Ja!
PD La propiedad de raíces en la configuración le dice a Jest dónde buscar todas sus pruebas. Pensé que podría ayudar.