Exécutez un seul test avec Jest
Très simple, je veux lancer un seul test avec Jest.
Je mets it.only
ou describe.only
mais il exécute toujours beaucoup de tests.
Je pense qu'il exécute tous les tests depuis mon dernier commit, mais il ne devrait pas avoir ce comportement avec le drapeau only
explicitement défini, Non?
Quelles sont les causes de ce comportement et comment exécuter un seul test?
2 réponses
Jest parallélise le test et il ne sait pas à l'avance qui le teste devrait fonctionner et qu'il ne devrait pas fonctionner. Cela signifie que lorsque vous utilisez "fit", il n'exécutera qu'un seul test dans ce fichier mais exécutez toujours tous les autres fichiers de test dans votre projet .
fit
, fdescribe
et it.only
, describe.only
ont le même but, ignorer les autres thests, exécutez seulement moi.
Source: https://github.com/facebook/jest/issues/698#issuecomment-177673281
Utilisez le mécanisme de filtrage jest
lorsque vous exécutez vos tests comme
jest --config=jest.config.json --watch
, Vous pouvez filtrer les tests par un testname
ou filename
, il suffit de suivre les instructions dans le terminal
Appuyez sur p
, puis tapez un nom de fichier
Ensuite, vous pouvez utiliser describe.only
et it.only
qui sauteront tous les autres tests du fichier filtré et testé.
it.only
et describe.only
ne fonctionnent que pour le module dans lequel ils se trouvent. Si vous rencontrez des problèmes pour filtrer les tests dans plusieurs fichiers, vous pouvez utiliser jest -t name-of-spec
, filtrage des tests qui correspondent au nom de la spécification (correspondance avec le nom dans describe ou test).
Source: https://facebook.github.io/jest/docs/en/cli.html
Par exemple, je concentre le test que j'écris actuellement comme ceci (avec le script de test dans le package.json
):npm test -- -t "test foo"