J'ai un test «fonctionne avec des enfants imbriqués» dans le fichier fix-order-test.js.
L'exécution de ce qui suit exécute tous les tests du fichier.
jest fix-order-test
Comment exécuter un seul test? Ce qui suit ne fonctionne pas car il recherche un fichier de l'expression régulière spécifiée.
jest 'works with nested children'
--testNamePattern
'works with nested children'
options CLI Jest #testNamePatternRéponses:
À partir de la ligne de commande, utilisez l' indicateur
--testNamePattern
ou-t
Cela exécutera uniquement les tests correspondant au modèle de nom de test que vous fournissez. C'est dans les documents Jest .
Une autre façon consiste à exécuter des tests en mode montre,
jest --watch
puis à appuyer sur ppour filtrer les tests en tapant le nom du fichier de test ou tpour exécuter un seul nom de test.Si vous avez l'
it
intérieur d'undescribe
bloc, vous devez exécuterla source
it()
fonction et non du nom de fichier. C'est ce que je pensais.npm test -- -t "fix order test"
./node_modules/.bin/jest --config=./.jest.config.json ./src/x/y/sites.js/sitesWorker.test.js -t 'given only incorrect sites'
La documentation Jest recommande ce qui suit:
ou
la source
test.only
. Donc, si vous ne souhaitez exécuter qu'un seul test dans un fichier contenant de nombreux cas de test dans une suite de tests qui se compose de nombreux fichiers, vous devez malheureusement exécuter ce seul fichierjest myTestFile.test.js
npm test
. Vous devrez exécuter le fichier lui-même ou appuyer surp
pour définir un filtre.Comme mentionné dans d'autres réponses,
test.only
filtre simplement les autres tests dans le même fichier . Les tests dans d'autres fichiers continueraient donc de s'exécuter.Donc, pour exécuter un seul test, il existe deux approches:
Option 1: si le nom de votre test est unique, vous pouvez entrer
t
en mode montre et saisir le nom du test que vous souhaitez exécuter.Option 2:
p
en mode veille pour entrer une expression régulière pour le nom de fichier que vous souhaitez exécuter. (Des commandes pertinentes comme celle-ci s'affichent lorsque vous exécutez Jest en mode montre).it
auit.only
test que vous souhaitez exécuter.Avec l'une des approches ci-dessus, Jest exécutera uniquement le test unique dans le fichier que vous avez spécifié.
la source
Commande complète pour exécuter un seul test Jest
Commander:
node <path-to-jest> -i <you-test-file> -c <jest-config> -t "<test-block-name>"
<path-to-jest>
:node_modules\jest\bin\jest.js
node_modules/.bin/jest
-i <you-test-file>
: chemin d'accès au fichier avec tests (js
outs
)-c <jest-config>
: chemin vers un fichier de configuration Jest séparé (JSON), si vous conservez votre configuration Jest,package.json
vous n'avez pas besoin de spécifier ce paramètre (Jest le trouvera sans votre aide)-t <the-name-of-test-block>
: En fait , il est un nom (le premier paramètre) dedescribe(...)
,it(...)
outest(...)
bloc.Exemple:
Ainsi, la commande
node node_modules/jest/bin/jest.js -i test/math-tests.js -c test/tests-config.json -t "1 + 1 = 2"
testera
it("1 + 1 = 2", ...)
, mais si vous changez le-t
paramètre en,"math tests"
il exécutera les deux tests à partir dudescribe("math tests",...)
bloc.Remarques:
node_modules/.bin/jest
parnode_modules\jest\bin\jest.js
.'--inspect-brk'
paramètre à la commande.Exécution d'un seul test Jest via des scripts NPM dans 'package.json'
Une fois Jest installé, vous pouvez simplifier la syntaxe de cette commande (ci-dessus) en utilisant des scripts NPM . Pour
"package.json"
ajouter un nouveau script à la"scripts"
section:Dans ce cas, nous utilisons un alias
'jest'
au lieu d'y écrire le chemin complet. De plus, nous ne spécifions pas le chemin du fichier de configuration car nous pouvons également le placer"package.json"
et Jest l'examinera par défaut. Vous pouvez maintenant exécuter la commande:npm run test:math
et le
"math tests"
bloc avec deux tests sera exécuté. Ou bien sûr, vous pouvez spécifier un test particulier par son nom.Une autre option serait d'extraire le
<the-name-of-test-block>
paramètre en dehors du"test:math"
script et de le passer à partir de la commande NPM:package.json:
Commander:
npm run test:math "math tests"
Vous pouvez maintenant gérer le nom des tests d'exécution avec une commande beaucoup plus courte.
Remarques:
'jest'
commande fonctionnera avec les scripts NPM carnode
.Exécution du test Jest sélectionné dans Visual Studio Code
Si vous utilisez Visual Studio Code, vous pouvez en profiter et exécuter le test actuellement sélectionné (dans l'éditeur de code) en appuyant sur le
F5
bouton. Pour ce faire, nous devrons créer un nouveau bloc de configuration de lancement dans le".vscode/launch.json"
fichier. Dans cette configuration, nous utiliserons des variables prédéfinies qui sont remplacées par les valeurs appropriées (malheureusement pas toujours ) lors de l'exécution. De tous les disponibles, nous ne sommes intéressés que par ceux-ci:${relativeFile}
- le fichier ouvert actuel par rapport à${workspaceFolder}
${selectedText}
- le texte actuellement sélectionné dans le fichier actifMais avant d'écrire la configuration de lancement, nous devons ajouter le
'test'
script dans notre'package.json'
(si nous ne l'avons pas encore).package.json:
alors nous pouvons l'utiliser dans notre configuration de lancement.
Lancer la configuration:
il fait en fait la même chose que les commandes décrites plus haut dans cette réponse. Maintenant que tout est prêt, nous pouvons exécuter n'importe quel test que nous voulons sans avoir à réécrire les paramètres de commande manuellement.
Voici tout ce que vous devez faire:
'F5'
bouton.Et le tour est joué!
Maintenant, pour exécuter le test que vous souhaitez, ouvrez-le dans l'éditeur, sélectionnez son nom et appuyez sur F5.
Malheureusement, ce ne sera pas "voila" sur les machines Windows car elles substituent (qui sait pourquoi) la
${relativeFile}
variable avec le chemin ayant des barres obliques inversées et Jest ne comprendrait pas un tel chemin.Remarques:
'--inspect-brk'
paramètre.'package.json'
.la source
npx
pour simplifier considérablement l'appel de Jest, quel que soit le système d'exploitation.Vous pouvez également utiliser
f
oux
pour concentrer ou exclure un test. Par exemplela source
xit
a fonctionné pour moi, maisfit
ne fonctionne pas. j'utilise [email protected].fit
travaille pour [email protected] pour moi.f
cela ne fonctionne que dans un seul fichier.Comme indiqué ci-dessus, vous pouvez exécuter la commande
Si vous avez l'
it
intérieur d'undescribe
bloc, vous devez exécuterla source
Si vous avez
jest
exécuté en tant que commande de script, quelque chose commenpm test
, vous devez utiliser la commande suivante pour le faire fonctionner:la source
avec la dernière version plaisanterie , vous pouvez utiliser l'une des options suivantes pour exécuter un seul test, de même pour la suite de tests.
jest 'test 1'
peut également fonctionner si le nom du test est unique.la source
Dans VS Code, cela ne me permet d'exécuter / déboguer qu'un seul test Jest, avec des points d'arrêt: https://github.com/Microsoft/vscode-recipes/tree/master/debugging-jest-tests
Mon
launch.json
a ceci à l'intérieur:et ceci en
package.json
:test
(ouit
) partest.only
(ouit.only
). Pour exécuter 1 suite de tests (plusieurs tests), passezdescribe
àdescribe.only
.Jest Current File
.la source
"scripts": { "test": "jest" }
depackage.json
car vous avez spécifié le chemin complet dans le"program"
paramètre danslaunch.json
.juste un petit add-on, car il semble qu'il y ait eu une sorte de combat pour utiliser
./node_modules/.bin/jest -i ...
ou justejest -i ...
ounpm test -- -i ...
jest
works si vous l'avez installé globalement (comme avec npm install -g jest), une façon pas si propre de gérer les dépendancesnpx jest -i ...
=> c'est exactement à cela que sert npx. vous évite d'écrire./node_modules/.bin/...
la source
Voici mon point de vue:
./node_modules/.bin/jest --config test/jest-unit-config.json --runInBand src/components/OpenForm/OpenForm.spec.js -t 'show expanded'
Remarques:
./node_modules/.bin/...
est une merveilleuse façon d'accéder au binaire jest (ou mocha ou ...) installé localement fourni avec le paquet installé localement. (oui, dans vos scripts npm, vous ne pouvezjest
rien faire auparavant, mais c'est pratique en ligne de commande ... (c'est aussi un bon début pour votre configuration de débogage, quel que soit l'IDE que vous utilisez ...)package.json
), c'est ce dont vous avez besoin.--runInBand
- comme dit, je ne sais pas pour votre config, mais si vous vous concentrez sur le développement / la correction d'un seul test, vous ne voulez plutôt pas faire affaire avec des travailleurs du web ...-t
pour ne pas exécuter tous les tests dans ce fichier mais seulement un seul (ici: celui qui a quelque chose avec 'show expanded
' dans son nom). Le même effet peut être obtenu en collant.only()
dans ce fichier.la source
Il y a maintenant un plugin plaisant pour cela appelé
jest-watch-typeahead
cela rend ce processus beaucoup plus simple.la source
Cela ne fonctionnera que si le nom de votre spécification de test est unique. Le code ci-dessus ferait référence
un fichier avec ce nom:
test-name.component.spec.ts
la source