Aller au contenu principal
Version: 27.2

Options de Jest CLI

L'interpréteur en ligne de commande de jest a de nombreuses options utiles. Vous pouvez entrer jest --help pour voir toutes les options disponibles. Plusieurs des options présentées ci-dessous peuvent également être utilisées ensemble pour exécuter les tests exactement comme vous le souhaitez. Chacune des options de Configuration de Jest peut également être définie via l'interface CLI.

Voici un bref aperçu :

Exécution en ligne de commande#

Exécute tous les tests (par défaut) :

jest

Exécute seulement les tests identifiés par un pattern ou un nom de fichier :

jest my-test #ou
jest path/to/my-test.js

Exécute des tests relatifs à des changements hg/git (fichiers non commités) :

jest -o

Exécute des tests relatifs à path/to/fileA.js et path/to/fileB.js :

jest --findRelatedTests path/to/fileA.js path/to/fileB.js

Exécute les tests qui correspondent à ce nom de spécification (correspond au nom dans describe ou test, en principe).

jest -t name-of-spec

Exécute en mode surveillance (watch) :

jest --watch #exécute jest -o par défaut
jest --watchAll #exécute tous les tests

Le mode surveillance permet également de spécifier le nom ou le chemin d'accès à un fichier pour se concentrer sur un ensemble spécifique de tests.

Utilisation avec yarn#

Si vous lancez Jest via yarn test, vous pouvez directement passer les paramètres de la ligne de commande en tant que paramètres Jest.

Au lieu de :

jest -u -t="ColorPicker"

vous pouvez utiliser :

yarn test -u -t="ColorPicker"

Utilisation avec les scripts npm#

Si vous lancez Jest avec npm test, vous pouvez toujours utiliser les paramètres dans la ligne de commande en insérant -- entre npm test et les paramètres Jest.

Au lieu de :

jest -u -t="ColorPicker"

vous pouvez utiliser :

npm test -- -u -t="ColorPicker"

Prise en charge des arguments au format camelcase & tirets#

Jest prend en charge les arguments au format camelcase et tirets. Les exemples suivants auront un résultat identique :

jest --collect-coverage
jest --collectCoverage

Les arguments peuvent également être mélangés :

jest --update-snapshot --detectOpenHandles

Options#

Remarque : les options de l'interface CLI ont la priorité sur les valeurs de la Configuration.


Référence#

jest <regexForTestFiles>#

Quand vous exécutez jest avec un argument, cet argument est traité comme une expression régulière servant à filtrer les fichiers de votre projet. Il est possible d'exécuter des suites de test en fournissant un modèle. Seuls les fichiers correspondants au modèle seront exécutés. En fonction de votre terminal, vous pouvez avoir besoin de citer cet argument : jest "my.*(complex)?pattern". Sous Windows, vous devrez utiliser / comme séparateur de chemin ou échapper \ ainsi \\.

--bail#

Alias : -b. Quitte la suite de tests immédiatement après n nombre d'échec de la suite de tests. Par défaut, 1.

--cache#

Utilisation du cache. Valeur par défaut: true. Désactiver le cache à l'aide de --no-cache. Remarque: le cache doit être uniquement désactivé si vous rencontrez des problèmes de mise en cache. En moyenne, la désactivation du cache rend Jest au moins deux fois plus lent.

Si vous voulez inspecter le cache, utilisez --showConfig et regardez la valeur cacheDirectory. Si vous devez vider le cache, utilisez --clearCache.

--changedFilesWithAncestor#

Exécute les tests relatifs aux changements actuels et aux changements effectués dans le dernier commit. Se comporte de la même façon que --onlyChanged.

--changedSince#

Exécute les tests liés aux changements depuis la branche ou le hash du commit fourni. Si la branche actuelle a divergé de la branche donnée, alors seules les modifications faites localement seront testées. Se comporte de la même façon que --onlyChanged.

--ci#

Quand cette option est passée, Jest considérera qu'il est exécuté dans un environnement de CI. Cela modifie le comportement lorsqu'un nouveau snapshot est rencontré. A la place de stocker le nouveau snapshot automatiquement, le test échouera et il sera nécessaire d'exécuter jest avec l'option --updateSnapshot.

--clearCache#

Supprime le répertoire de cache Jest, puis quitte sans exécuter de tests. Supprimera cacheDirectory si l'option est passée, ou le répertoire de cache par défaut de Jest. Le répertoire de cache par défaut peut être trouvé en appelant jest --showConfig. Remarque : vider le cache réduira les performances.

--collectCoverageFrom=<glob>#

Un pattern glob relatif à rootDir correspondant aux fichiers dont les informations de couverture doivent être collectées.

--colors#

Force la coloration des résultats de tests même si la sortie standard n'est pas un terminal.

--config=<path>#

Alias: -c. Le chemin vers un fichier de config jest décrivant comment trouver et exécuter les tests. Si aucun rootDir n'est défini dans la configuration, le répertoire contenant le fichier de configuration est supposé être le rootDir du projet. Ce paramètre accepte aussi une valeur encodée en JSON que Jest utilisera comme configuration.

--coverage[=<boolean>]#

Alias : --collectCoverage. Indique que les informations de couverture de code doivent être recueillies et affichées dans la sortie du terminal. Passez éventuellement <boolean> pour remplacer l'option définie dans la configuration.

--coverageProvider=<provider>#

Indique quel fournisseur doit être utilisé pour instrumenter le code pour la couverture. Les valeurs autorisées sont babel (par défaut) ou v8.

Notez que l'utilisation de v8 est considérée comme expérimentale. Cela utilise la couverture de code interne de V8 plutôt qu'un code basé sur Babel. Il n'est pas aussi bien testé, et il a également été amélioré dans les dernières versions de Node. Utiliser les dernières versions de node (v14 au moment de cette écriture) donnera de meilleurs résultats.

--debug#

Affiche les informations de débogage de votre configuration Jest.

--detectOpenHandles#

Tente de collecter et d'afficher les gestionnaires ouverts qui empêchent Jest de sortir proprement. Utilisez ceci dans les cas où vous avez besoin d'utiliser --forceExit afin que Jest quitte pour potentiellement découvrir la raison. Cela implique --runInBand, faisant en sorte que les tests s'exécutent en série. Mis en œuvre en utilisant async_hooks. Cette option pénalise les performances de manière significative et ne doit être utilisée que pour le débogage.

--env=<environment>#

L'environnement de test utilisé pour tous les tests. Ceci peut pointer vers n'importe quel fichier ou module. Exemples : jsdom, node ou path/to/my-environment.js.

--errorOnDeprecated#

Fait en sorte que l'appel d'API obsolètes génère des messages d'erreur utiles. Utile pour faciliter le processus de mise à jour.

--expand#

Alias : -e. Utilisez cette option pour afficher un diff complet et les erreurs au lieu d'un patch.

--filter=<file>#

Chemin vers un module exportant une fonction de filtrage. Cette méthode reçoit une liste de tests qui peuvent être manipulés pour exclure l'exécution de tests. Particulièrement utile lorsqu'il est utilisé en conjonction avec une infrastructure de test pour filtrer les pannes connues.

--findRelatedTests <spaceSeparatedListOfSourceFiles>#

Recherche et exécute les tests qui couvrent une liste de fichiers source séparés par des espaces et passés en argument. Utile pour l'intégration de hook de pré-commit pour exécuter le minimum de tests nécessaires. Peut être utilisé avec --coverage pour inclure une couverture de test pour les fichiers sources, sans avoir besoin de dupliquer les arguments de --collectCoverageFrom.

--forceExit#

Force Jest à s'arrêter une fois que tous les tests ont fini de s'exécuter. Ceci est utile lorsque les ressources mises en place par le code de test ne peuvent pas être nettoyées de manière adéquate. Remarque : cette fonctionnalité est un échappatoire. Si Jest ne se termine pas à la fin d'un test, cela signifie que des ressources externes sont toujours retenues ou que des temporisateurs sont toujours en attente dans votre code. Il est conseillé de détruire les ressources externes après chaque test pour s'assurer que Jest peut s'arrêter correctement. Vous pouvez utiliser --detectOpenHandles pour aider à le repérer.

--help#

Afficher l'aide, similaire à cette page.

--init#

Génére un fichier de configuration de base. En fonction de votre projet, Jest vous posera quelques questions qui permettront de générer un fichier jest.config.js avec une courte description pour chaque option.

--injectGlobals#

Insére les globales de Jest (expect, test, describe, beforeEach etc.) dans l'environnement global. Si vous définissez cette valeur à false, vous devez par exemple importer à partir de @jest/globals.

import {expect, jest, test} from '@jest/globals';
jest.useFakeTimers();
test('un test', () => {
expect(Date.now()).toBe(0);
});

Remarque : Cette option n'est prise en charge qu'en utilisant le runner de test jest-circus par défaut.

--json#

Affiche les résultats du test en JSON. Ce mode enverra tous les autres messages de test et de l'utilisateur à stderr.

--outputFile=<filename>#

Écrit les résultats des tests dans un fichier lorsque l'option --json est aussi passée. La structure JSON retournée est documentée dans testResultsProcessor.

--lastCommit#

Exécute tous les tests affectés par les fichiers modifiés dans le dernier commit. Se comporte de la même façon que --onlyChanged.

--listTests#

Liste tous les tests en JSON que Jest exécutera en fonction des arguments et sort. Ceci peut être utilisé avec --findRelatedTests pour savoir quels tests Jest va exécuter.

--logHeapUsage#

Enregistre l'utilisation du tas après chaque test. Utile pour déboguer les fuites de mémoire. A utiliser conjointement avec --runInBand et --expose-gc dans node.

--maxConcurrency=<num>#

Empêche Jest d'exécuter plus que le nombre spécifié de tests en même temps. N'affecte que les tests qui utilisent test.concurrent.

--maxWorkers=<num>|<string>#

Alias : -w. Spécifie le maximum de processus que l'orchestrateur de processus lancera pour exécuter les tests. En mode d'exécution simple, il s'agit par défaut du nombre de cœurs disponibles sur votre machine, moins un pour le thread principal. En mode surveillance, il s'agit par défaut de la moitié des cœurs disponibles sur votre machine afin de s'assurer que Jest reste discret et ne paralyse pas votre machine. Il peut être utile d'utiliser cette option dans les environnements avec des ressources limitées comme les environnements de CI, mais la valeur par défaut devrait être suffisante pour la plupart des cas d’utilisation.

Pour les environnements avec des processeurs disponibles variables, vous pouvez utiliser une configuration basée sur le pourcentage : --maxWorkers=50%

--noStackTrace#

Désactive le suivi de la pile d'exécution dans les résultats des tests.

--notify#

Active les notifications pour les résultats de test. Idéal lorsque vous ne voulez pas que votre cerveau soit en mesure de se concentrer sur autre chose que les tests JavaScript.

--onlyChanged#

Alias : -o. Tente d’identifier quels tests doivent être exécutés en fonction des fichiers changés dans le dépôt actuel. Ne fonctionne que si vous exécutez des tests dans un dépôt git/hg pour le moment et nécessite un graphe de dépendances statique (c'est-à-dire sans exigences dynamiques).

--passWithNoTests#

Permet à la suite de tests de passer si aucun fichier n'est trouvé.

--projects <path1> ... <pathN>#

Exécute des tests à partir d'un ou plusieurs projets, trouvés dans les chemins spécifiés ; prend aussi les globs de chemin. Cette option CLI est l'équivalent de l'option de configuration projects. Veuillez noter que si des fichiers de configuration sont trouvés dans les chemins spécifiés, tous les projets spécifiés dans ces fichiers de configuration seront exécutés.

--reporters#

Exécuter les tests avec les rapporteurs spécifiés. Les options des rapporteurs ne sont pas disponibles via CLI. Exemple avec plusieurs rapporteurs :

jest --reporters="default" --reporters="jest-junit"

--roots#

Une liste de chemins vers des répertoires que Jest devrait utiliser pour rechercher des fichiers.

--runInBand#

Alias : -i. Exécute tous les tests en série dans le processus actuel, plutôt que de créer un pool de processus enfants qui exécutent les tests. Cela peut être utile pour le débogage.

--selectProjects <project1> ... <projectN>#

Exécute uniquement les tests des projets spécifiés. Jest utilise l'attribut displayName dans la configuration pour identifier chaque projet. Si vous utilisez cette option, vous devez fournir un displayName à tous vos projets.

--runTestsByPath#

Exécute uniquement les tests qui ont été spécifiés avec leurs chemins exacts.

Remarque : La correspondance regex par défaut fonctionne bien sur les petites exécutions, mais devient lente si elle est fournie avec plusieurs patterns et/ou avec un grand nombre de tests. Cette option remplace la logique de correspondance regex et optimise ainsi le temps nécessaire à Jest pour filtrer des fichiers de test spécifiques

--setupFilesAfterEnv <path1> ... <pathN>#

A list of paths to modules that run some code to configure or to set up the testing framework before each test. Beware that files imported by the setup scripts will not be mocked during testing.

--showConfig#

Affiche votre configuration Jest et sort.

--silent#

Empêche les tests d'afficher des messages dans la console.

--testEnvironmentOptions=<json string>#

A JSON string with options that will be passed to the testEnvironment. Les options pertinentes dépendent de l'environnement.

--testNamePattern=<regex>#

Alias : -t. Exécute uniquement les tests dont le nom correspond à la regex. Par exemple, supposons que vous voulez exécuter uniquement des tests liés à l'autorisation qui auront des noms comme "GET /api/posts with auth", alors vous pouvez utiliser jest -t=auth.

Remarque : la recherche est effectuée sur le nom complet, qui est une combinaison du nom du test et de tous les blocs describe qui l'entourent.

--testLocationInResults#

Ajoute un champ location aux résultats des tests. Utile si vous voulez signaler l'emplacement d'un test dans un rapport.

Notez que column est indexé à 0 alors que line ne l'est pas.

{
"column": 4,
"line": 5
}

--testPathPattern=<regex>#

Une chaîne de patterns regexp qui est comparée à tous les chemins de test avant d'exécuter le test. Sous Windows, vous devrez utiliser / comme séparateur de chemin ou échapper \ ainsi \\.

--testPathIgnorePatterns=<regex>|[array]#

Une seule ou un tableau de chaînes de patterns regexp qui sont testées par rapport à tous les chemins de test avant d'exécuter le test. Contrairement à --testPathPattern, il n'exécutera que les tests dont le chemin ne correspond pas aux expressions regexp fournies.

Pour les transmettre sous forme de tableau, utilisez des parenthèses échappées et des regexp délimitées par des espaces, comme \(/node_modules/ /tests/e2e/\). Alternativement, vous pouvez omettre les parenthèses en combinant des regexp en un seul regexp comme /node_modules/|/tests/e2e/. Ces deux exemples sont équivalents.

--testRunner=<path>#

Vous permet de spécifier un runner de test personnalisé.

--testSequencer=<path>#

Vous permet de spécifier un séquenceur de test personnalisé. Veuillez vous référer à la documentation de la propriété de configuration correspondante pour plus de détails.

--testTimeout=<number>#

Délai par défaut d'un test en millisecondes. Valeur par défaut : 5000.

--updateSnapshot#

Alias : -u. Utiliser cette option pour ré-enregister chaque snapshot qui échoue durant les tests. Peut être utilisé avec un pattern de suite de test ou avec l'option --testNamePattern pour ré-enregistrer les snapshots.

--useStderr#

Dirige toutes les sorties vers stderr.

--verbose#

Afficher les résultats de chaque test avec la hiérarchie de la suite de test.

--version#

Alias : -v. Affiche la version et sort.

--watch#

Surveille les changements dans les fichiers et relance les tests liés aux fichiers modifiés. Si vous voulez relancer tous les tests lorsqu'un fichier a changé, utilisez plutôt l'option --watchAll.

--watchAll#

Surveille les changements dans les fichiers et réexécute tous les tests lorsque quelque chose change. Si vous voulez ré-exécuter uniquement les tests qui dépendent des fichiers modifiés, utilisez l'option --watch.

Utilisez --watchAll=false pour désactiver explicitement le mode de surveillance. Notez que dans la plupart des environnements CI, ceci est automatiquement géré pour vous.

--watchman#

Utilisation ou non de watchman pour l'exploration des fichiers. Par défaut à true. Désactivez en utilisant --no-watchman.