Aller au contenu principal
Version : Suivant

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 des tests qui correspondent au nom de la spécification (correspond au nom describe ou test).

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 le gestionnaire de paquets

Si vous exécutez Jest via votre gestionnaire de paquets, vous pouvez toujours passer les arguments directement en ligne de commande en tant qu'arguments 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 les arguments avec 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 passées en ligne de commande ont 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[=<n>]

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.

attention

Le cache ne devrait être désactivé que si vous rencontrez des problèmes liés à la 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.

attention

Nettoyer le cache réduira les performances.

--clearMocks

Efface automatiquement les appels, les instances, les contextes et les résultats des simulations avant chaque test. Équivalent à l'appel de jest.clearAllMocks() avant chaque test. Cela ne supprime aucune implémentation simulée qui aurait pu être fournie.

--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.

remarque

Vous pouvez également définir la variable d'environnement FORCE_COLOR=true pour activer de force ou FORCE_COLOR=false pour empêcher la sortie colorisée. L'utilisation de FORCE_COLOR remplace toutes les autres vérifications de support des couleurs.

--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.

--coverageDirectory=<path>

Le répertoire où Jest doit écrire les fichiers de couverture.

--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.

--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 fonction asynchrone reçoit une liste de chemins de test qui peuvent être manipulés pour exclure les tests de l'exécution et doit retourner un objet avec la forme { filtered: Array<string> } contenant les tests qui devraient être exécutés par Jest. Particulièrement utile lorsqu'il est utilisé en conjonction avec une infrastructure de test pour filtrer les pannes connues.

my-filter.js
// Ce filtre, une fois appliqué, n'exécutera que les tests se terminant par .spec.js (ce n'est pas la meilleure façon de procéder, mais c'est juste un exemple) :
const filteringFunction = testPath => testPath.endsWith('.spec.js');

module.exports = testPaths => {
const allowedPaths = testPaths.filter(filteringFunction); // ["path1.spec.js", "path2.spec.js", etc]

return {
filtered: allowedPaths,
};
};

--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.

attention

Cette fonctionnalité est un raccourci pour quitter le processus. 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.

--ignoreProjects <project1> ... <projectN>

Ignore 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.

--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.

--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 fichiers de test que Jest exécutera en fonction des arguments et sort.

--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).

--openHandlesTimeout=<milliseconds>

When --detectOpenHandles and --forceExit are disabled, Jest will print a warning if the process has not exited cleanly after this number of milliseconds. A value of 0 disables the warning. Defaults to 1000.

--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.

--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.

remarque

Si les 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.

--randomize

Mélange l'ordre des tests dans un fichier. Le mélange est basé sur la valeur de l'argument seed. Voir --seed=<num> pour plus d'informations.

La valeur de seed est affichée lorsque cette option est définie. Equivalent to setting the CLI option --showSeed.

jest --randomize --seed 1234
remarque

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

--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"

--resetMocks

Réinitialisation automatique de l'état de la simulation avant chaque test. Équivalent à l'appel de jest.resetAllMocks() avant chaque test. Cela conduira à la destruction des implémentations fictives des simulations, mais ne rétablira pas leur implémentation initiale.

--restoreMocks

Restauration automatique de l'état de la simulation et l'implémentation avant chaque test. Équivalent à l'appel de jest.restoreAllMocks() avant chaque test. Cela conduira à la destruction des implémentations de tous les simulations et rétablira leur implémentation initiale.

--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.

--runTestsByPath

Exécute uniquement les tests qui ont été spécifiés avec leurs chemins exacts. Cela évite de les convertir en une expression régulière et de les faire correspondre à chaque fichier.

Par exemple, partant de la structure de fichier suivante :

__tests__
└── t1.test.js # test
└── t2.test.js # test

Lorsqu'il est exécuté avec un motif, aucun test n'est trouvé :

jest --runTestsByPath __tests__/t

Sortie :

No tests found

Cependant, passer un chemin exact n'exécutera que le test donné :

jest --runTestsByPath __tests__/t1.test.js

Sortie :

PASS __tests__/t1.test.js
astuce

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.

--seed=<num>

Définit une valeur de seed qui peut être récupérée dans un fichier de test via jest.getSeed(). The seed value must be between -0x80000000 and 0x7fffffff inclusive (-2147483648 (-(2 ** 31)) and 2147483647 (2 ** 31 - 1) in decimal).

jest --seed=1324
astuce

If this option is not specified Jest will randomly generate the value. You can use the --showSeed flag to print the seed in the test report summary.

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

Exécute 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.

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

Une liste de chemins vers des modules qui exécutent du code pour configurer ou paramétrer le framework de test avant chaque test. Attention, les fichiers importés par les scripts d'installation ne seront pas simulés pendant les tests.

--shard

Le partitionnement de la suite de test à exécuter dans un format équivalent à (?<shardIndex>\d+)/(?<shardCount>\d+).

shardIndex décrit le partitionnement à sélectionner tandis que shardCount contrôle le nombre de partitionnements dans lesquels la suite doit être divisée.

shardIndex et shardCount doivent être des nombres positifs, basés sur 1, et shardIndex doit être inférieur ou égal à shardCount.

Lorsque shard est spécifié, le testSequencer configuré doit implémenter une méthode shard.

Par exemple, pour découper la suite en trois partitionnement, chacun exécutant un tiers des tests :

jest --shard=1/3
jest --shard=2/3
jest --shard=3/3

--showConfig

Affiche votre configuration Jest et sort.

--showSeed

Affiche la valeur de seed dans le résumé du rapport de test. Voir --seed=<num> pour les détails.

Peut également être défini dans la configuration. Voir showSeed.

--silent

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

--testEnvironmentOptions=<json string>

Une chaîne JSON avec des options qui seront passées à testEnvironment. Les options pertinentes dépendent de l'environnement.

--testLocationInResults

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

remarque

In the resulting object column is 0-indexed while line is not.

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

--testMatch glob1 ... globN

Les patterns de glob que Jest utilise pour détecter les fichiers de test. Veuillez vous référer à la configuration de testMatch pour plus de détails.

--testNamePattern=<regex>

Alias : -t. Exécute uniquement les tests dont le nom correspond à la regex. For example, suppose you want to run only tests related to authorization which will have names like 'GET /api/posts with auth', then you can use jest -t=auth.

astuce

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.

--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. Contrary to --testPathPatterns, it will only run those tests with a path that does not match with the provided regexp expressions.

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.

--testPathPatterns=<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 \`.

--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 configuration de testSequencer 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.

--waitNextEventLoopTurnForUnhandledRejectionEvents

Gives one event loop turn to handle rejectionHandled, uncaughtException or unhandledRejection.

Without this flag Jest may report false-positive errors (e.g. actually handled rejection reported) or not report actually unhandled rejection (or report it for different test case).

This option may add a noticeable overhead for fast test suites.

--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.

astuce

Use --no-watch (or --watch=false) to explicitly disable the watch mode if it was enabled using --watch. In most CI environments, this is automatically handled for you.

--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.

astuce

Use --no-watchAll (or --watchAll=false) to explicitly disable the watch mode if it was enabled using --watchAll. In most CI environments, this is automatically handled for you.

--watchman

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

--workerThreads

Whether to use worker threads for parallelization. Child processes are used by default.

attention

This is experimental feature. See the workerThreads configuration option for more details.