web-dev-qa-db-fra.com

Exécution de CRA Jest en mode non interactif

Mise à jour: mon cas d'utilisation consiste principalement à exécuter des tests sur CI, mais la substitution des paramètres par défaut de CRA Jest est quelque chose que je me demande généralement.


J'exécute des tests en utilisant Jest , la configuration fournie avec Create React App . Elle se lance toujours en mode interactif:

 › Press a to run all tests.
 › Press o to only run tests related to changed files.
 › Press p to filter by a filename regex pattern.
 › Press q to quit watch mode.
 › Press Enter to trigger a test run.

Mais je ne veux pas qu'il attende mon entrée. Je veux qu'il s'exécute une fois puis se termine. J'ai essayé d'utiliser le --bail ou --no-watchman change mais il se lance toujours en mode interactif.

Si j'installe globalement jest et l'exécute à la racine de mon projet, il s'exécute une fois et se termine (comme je le souhaite). Mais quand je lance npm test qui s'exécute react-scripts test, il passe en mode montre même lorsque je ne passe pas --watch.

Mise à jour: j'ai également déposé un problème sur CRA .

32
AlexStack

CRA recherche une variable d'environnement CI, si elle est présente, elle ne s'exécute pas en mode veille.

CI=true npm test devrait faire ce que vous cherchez

Voir Guide de l'utilisateur -> Exécution de tests -> Sur votre propre environnement

[~ # ~] mise à jour [~ # ~] Pour les non-ci, par exemple en exécutant des tests localement, à partir de [email protected] vous pouvez passer un --no-watch drapeau:

npm test --no-watch

49
WayneC