J'ai installé Jest sur ma machine et en tapant jest
à partir des résultats du terminal dans les tests des folers parents également exécutés. Je souhaite exécuter des tests uniquement à partir du dossier actuel.
Par exemple si je vais à c:/dev/app
dans le terminal et tapez some-jest-command
, il ne devrait exécuter que les fichiers avec .test.js
présent dans le dossier app
. Actuellement, l'exécution de la commande jest
à partir du dossier app
exécute également des tests dans les dossiers parents, ce qui n'est pas mon comportement souhaité.
Par défaut, Jest essaiera de tout tester récursivement à partir de n'importe quel dossier package.json
est situé.
Disons que vous êtes dans c:/dev/app
, et ton package.json
est dans c:
. Si votre commande de base pour appeler Jest est npm test
, puis essayez d'exécuter npm test dev/app
.
Pour exécuter uniquement les tests dans un répertoire spécifique et pour forcer Jest à lire uniquement certains types de fichiers (mon exemple: 'ExampleComponent.test.js' avec la nouvelle version de Jest @ 24.9.0, vous devez écrire exactement "testMatch" dans jest.config. json || package.json dans la partie "jest" suivante "testMatch": [ "<rootDir>/src/__tests__/**/*.test.js" ]
, ce testMatch dans mon cas frappe tous les fichiers avec le préfixe .test.js dans tests/sous-répertoires/et ignore tous les autres des fichiers comme 'setupTest.js' et d'autres fichiers .js dans le sous-répertoire 'mocks' qui est placé à l'intérieur du répertoire 'tests', donc, mon 'jest.config.json 'ressemble à ceci { "setupFiles": [ "raf/polyfill", "<rootDir>/setupTests.js" ], "snapshotSerializers": [ "enzyme-to-json/serializer" ], "moduleNameMapper": { "^.+\\.(css|less|scss|sass)$": "identity-obj-proxy" }, "testMatch": [ "<rootDir>/src/__tests__/**/*.test.js" ] }
.
Il vous suffit de vous adapter à l'expression rationnelle "testMatch" de vos besoins.
Une petite note: c'est pour [email protected] && [email protected] si cela compte pour n'importe qui.
J'espère que ce sera utile à quelqu'un, bravo à tous.