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>
:
- Les fenêtres:
node_modules\jest\bin\jest.js
- Autres:
node_modules/.bin/jest
-i <you-test-file>
: chemin d'accès au fichier avec tests ( js
ou ts
)
-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) de describe(...)
, it(...)
ou test(...)
bloc.
Exemple:
describe("math tests", () => {
it("1 + 1 = 2", () => {
expect(1 + 1).toBe(2);
});
it("-1 * -1 !== -1", () => {
expect(-1 * -1).not.toBe(-1);
});
});
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 du describe("math tests",...)
bloc.
Remarques:
- Pour Windows, remplacez
node_modules/.bin/jest
par node_modules\jest\bin\jest.js
.
- Cette approche vous permet de déboguer le script en cours d'exécution. Pour activer le débogage, ajoutez un
'--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:
"scripts": {
"test:math": "jest -i test/my-tests.js -t \"math tests\"",
}
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:
"scripts": {
"test:math": "jest -i test/my-tests.js -t",
}
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:
- La
'jest'
commande fonctionnera avec les scripts NPM car
npm crée "./node_modules/.bin"
la première entrée dans la PATH
variable d'environnement lors de l'exécution de scripts de cycle de vie, donc cela fonctionnera bien, même si votre programme n'est pas installé globalement ( blog NPM )
- Cette approche ne semble pas permettre le débogage car Jest est exécuté via son binaire / CLI , pas via
node
.
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 actif
Mais 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:
"scripts": {
"test": "jest"
}
alors nous pouvons l'utiliser dans notre configuration de lancement.
Lancer la configuration:
{
"type": "node",
"request": "launch",
"name": "Run selected Jest test",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script",
"test"
],
"args": [
"--",
"-i",
"${relativeFile}",
"-t",
"${selectedText}"
],
"console": "integratedTerminal",
}
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:
- Sélectionnez la configuration de lancement actuellement créée dans le panneau de débogage:
- Ouvrez le fichier contenant les tests dans l'éditeur de code et sélectionnez le nom du test que vous souhaitez tester (sans les guillemets):
- Appuyez sur le
'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:
- Pour exécuter sous le débogueur, n'oubliez pas d'ajouter le
'--inspect-brk'
paramètre.
- Dans cet exemple de configuration, nous n'avons pas de paramètre de configuration Jest en supposant qu'il est inclus dans
'package.json'
.