60 votes

Exécuter UN seul test avec Jest

Très simple, je veux exécuter un seul test avec Jest.

J'ai mis it.only o describe.only mais il exécute toujours un grand nombre de tests. Je pense qu'il exécute tous les tests depuis mon dernier commit, mais il ne devrait pas avoir ce comportement avec la fonction only explicitement activé, n'est-ce pas ?

Quelle est la cause de ce comportement et comment exécuter un test unique ?

69voto

hinok Points 2469

Jest paralléliser les tests et il ne sait pas d'emblée quels tests il doit effectuer il doit exécuter et ceux qu'il ne doit pas exécuter. Cela signifie que quand vous utilisez "fit", il n'exécutera qu'un seul test dans ce fichier mais exécutera quand même tous les autres fichiers de test de votre projet. .

fit , fdescribe y it.only , describe.only ont le même but, sautent les autres thèses, ne dirigent que moi.

Source : https://github.com/facebook/jest/issues/698#issuecomment-177673281


Utilisez jest mécanisme de filtrage, lorsque vous exécutez vos tests comme

jest --config=jest.config.json --watch

Vous pouvez filtrer les tests par un testname o filename il suffit de suivre les instructions dans le terminal

enter image description here

Appuyez sur p puis tapez un nom de fichier

enter image description here

Vous pouvez alors utiliser describe.only y it.only qui sautera tous les autres tests du fichier filtré et testé.

17voto

rodgobbi Points 834

it.only y describe.only ne fonctionnent que pour le module dans lequel ils se trouvent. Si vous avez des problèmes pour filtrer les tests dans plusieurs fichiers, vous pouvez utiliser jest -t name-of-spec filtrer les 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 je suis en train d'écrire comme ceci (avec le test script dans le fichier package.json ):
npm test -- -t "test foo"

4voto

tonco Points 520

Pour moi, cela fonctionne si j'utilise 2 paramètres comme ceci :

yarn test --watch -f "src/...fullpath.../reducer.spec.js" -t "Name of the test"

--watch : est facultatif

-f : fera un filtrage de vos fichiers, donc si vous avez beaucoup de tests avec le même nom, spécifiez le chemin complet du fichier exact.

-t : fonctionne avec le nom 'describe' ou 'it' de votre test.

2voto

hossein alipour Points 11

C'est comme ça :

jest sometest.test.js -t "some expression to match a describe or a test"

il testera tous les fichiers portant le nom sometest.test.js et la correspondance basée sur l'option -t, si vous voulez seulement tester un fichier spécifique, vous pouvez le faire :

jest src/user/.../sometest.test.js

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X