javascript - tutorial - Exécuter un seul test avec Jest
test each jest (3)
Très simple, je veux exécuter un seul test avec Jest.
Je le mets
it.only
ou je le
describe.only
mais il exécute tout un tas 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
only
drapeau explicitement défini, non?
Quelles sont les causes de ce comportement et comment exécuter un seul test?
Jest met en parallèle les tests et il ne sait pas à l’avance quels tests il doit exécuter et quels tests ne doivent pas être exécutés. Cela signifie que lorsque vous utilisez "fit", il n'exécutera qu'un seul test dans ce fichier, mais tous les autres fichiers de test de votre projet seront également exécutés .
fit
,
fdescribe
et
it.only
,
it.only
, n'a que le même but, saute les autres, tourne 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
filename
testname
ou
filename
, il suffit de suivre les instructions du terminal.
Appuyez sur
p
, puis tapez un nom de fichier.
Ensuite, vous pouvez utiliser
describe.only
et
it.only
qui
it.only
tous les autres tests du fichier filtré et testé.
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 les correspondants en fonction de l'option -t. Si vous souhaitez uniquement tester un fichier spécifique,
sometest.test.js
comme
sometest.test.js
:
jest src/user/.../sometest.test.js
it.only
et
describe.only
ne fonctionnent que pour le module dans
it.only
ils se trouvent. Si vous rencontrez 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 ( le nom décrit ou teste).
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"