Je peux tester plusieurs fichiers à l'aide de Jest, mais je n'arrive pas à comprendre comment tester un seul fichier.
J'ai:
- Courir
npm install jest-cli --save-dev
- Mise à jour
package.json
: `{..." scripts ": {" test ":" jest "} ...} - A écrit un certain nombre de tests.
L'exécution npm test
fonctionne comme prévu (actuellement, elle exécute 14 tests).
Comment puis-je tester un seul fichier, par exemple tester app/foo/__tests__/bar.spec.js
?
J'ai essayé de courir npm test app/foo/__tests__/bar.spec.js
(à partir de la racine du projet), mais j'obtiens l'erreur suivante:
npm ERR! Error: ENOENT, open '<path to project>/node_modules/app/foo/__tests__/bar.spec.js/package.json'
Merci
jest bar.spec.js
donnejest: command not found
. J'ai confirmé que Jest est installé (npm list -g jest
montre[email protected]
). FWIW, lorsque je cours en utilisantnpm test
il utilisejest-cli
.jest-cli
c'est le bon module, installez-le globalementnpm install -g jest-cli
.jest
dans npm est ... autre chosenode_modules/.bin/jest args
fit
au lieu deit
.Tout ce que vous avez à faire est de chanter l'incantation magique:
L'autonome
--
est * nix magic pour marquer la fin des options, ce qui signifie (pour NPM) que tout ce qui suit est passé à la commande en cours d'exécution, dans ce casjest
. En passant, vous pouvez afficher les notes d'utilisation plaisanterie en disantQuoi qu'il en soit, chanter
exécute les tests dans le fichier nommé (
FooBar.js
). Vous devez cependant noter que:Jest traite le nom comme sensible à la casse, donc si vous utilisez un système de fichiers insensible à la casse mais respectant la casse (comme Windows NTFS), vous pourriez rencontrer ce qui semble être une bizarrerie.
Jest semble traiter la spécification comme un préfixe.
Donc l'incantation ci-dessus
FooBar.js
,Foo.js
etFooZilla.js
foo.js
la source
npm ERR! Error: ENOENT, open '<path to project>/node_modules/<name of file>/package.json'
npm test ToDoForm.test.js
fonctionné tout simplementjest ToDoForm.test.js
pasPour exécuter un test individuel:
-t
- après avoir mis une expression régulière contenant le nom du test.la source
L'utilisation
npm test
ne signifie pas que Jest est installé à l'échelle mondiale. Cela signifie simplement que "test" est mappé à l'aide de jest dans votre package.jsonVoici ce qui a fonctionné pour moi, au niveau racine du projet:
args peut être le fichier de test que vous souhaitez exécuter ou le répertoire contenant plusieurs fichiers.
la source
node_modules/.bin
consiste à utiliser lanpx
commande. Par exemplenpx jest [args]
si vous utilisez,
yarn
vous pouvez ajouter le fichier.spec.js
ou.test.js
directement après:C'est la partie de mon
package.json
installation avec jest en tant que package local (suppression des parties pertinentes):la source
Vous pouvez utiliser le nom de fichier avec
npm test --
:la source
Si vous exécutez
npm >= 5.2.0
et que vous avez installé jest localement en tant quedevDependencies
avec,npm i -d jest
vous pouvez exécuter jest sur un fichier particulier en faisantnpx jest /path/to/your/spec.js
la source
Nous utilisons nrwl-nx avec angulaire . Dans ce cas, nous pouvons utiliser cette commande:
Remarques:
npm test
exécutera le script de test spécifié danspackage.json
:"test:client": "ng test client"
<ng-project>
est le nom d'un projetangular.json
"defaultProject"
(spécifié dansangular.json
) sera utilisé (vous devez donc le spécifier, lorsque le test n'est pas dans votre projet par défaut)angular.json
naviguer vers"project"
-"<ng-project>"
-"architect"
-"test"
"builder"
, qui dans notre cas est:"@nrwl/jest:jest"
npm test server -- --help
pour voir toutes les options disponibles--testFile
qui est utilisée icila source
C'est ainsi que j'exécute dynamiquement des tests sur un fichier spécifique sans redémarrer le test. Mon projet React a été créé était
create-react-app
il surveille donc le test des modifications, exécutant automatiquement le test lorsque j'apporte des modifications.
Voilà donc ce que je vois à la fin des résultats des tests sur le terminal.
Appuyez sur W
puis appuyez sur P
c'est après que j'ai voulu exécuter le fichier 'index.es6.js' dans le dossier 'Login'
Voilà comment j'exécute des tests sur un fichier spécifique.
la source
Peut également être atteint par
$ jest --findRelatedTests path/to/fileA.js
ref ( https://jestjs.io/docs/en/cli#running-from-the-command-line )
Comment cela peut-il être réalisé dans Nx monorepo, voici la réponse
user@host:/path/to/workspace$ npx nx test api --findRelatedTests=apps/api/src/app/mytest.spec.ts
ref & plus d'infos ( https://github.com/satminav/nx-qa/issues/6 )
la source
Je viens d'installer Jest comme globalement, puis j'ai couru
jest myFileToTest.spec.js
et cela a fonctionnéla source
Vous avez deux options:
Cela vous évite d'installer Jest à l'échelle mondiale. Vous utilisez la plaisanterie utilisée par votre projet.
la source
Jest utilisera ce que vous passez comme motif d'expression régulière . Cela correspondra pour.
Si vous souhaitez exécuter un fichier de test spécifique. Ensuite, la meilleure façon de le faire est de préciser le chemin d'accès complet. (Vous pouvez trop précis un certain chemin relatif comme (src / XFolder / index.spec.ts)).
Le moyen le plus simple de fournir le chemin complet dans le répertoire et sous Linux est:
Notez l'utilisation de la variable $ PWD .
Pour les fenêtres ! (à mettre à jour)
la source
Avec Angular et Jest, vous pouvez l'ajouter à package.json sous "scripts"
Ensuite, pour exécuter le test unitaire pour un fichier spécifique, vous pouvez écrire cette commande dans votre terminal
la source
Pas besoin de passer le chemin complet. Utilisez simplement
regex
pattern
.https://jestjs.io/docs/en/cli.html#--testnamepatternregex
la source