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?

23
demandé sur Andreas Köberle 2017-06-09 01:36:42

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

entrez la description de l'image ici

Appuyez sur p, puis tapez un nom de fichier

entrez la description de l'image ici

Ensuite, vous pouvez utiliser describe.only et it.only qui sauteront tous les autres tests du fichier filtré et testé.

34
répondu hinok 2017-06-08 23:27:27

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"

8
répondu rodgobbi 2017-10-13 19:11:52