Aller au contenu principal
Version : 29.3

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

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.

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

--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 des tests en retournant un objet avec la forme { filtered: Array<{ test: string }> }. Particulièrement utile lorsqu'il est utilisé en conjonction avec une infrastructure de test pour filtrer les pannes connues, par exemple :

my-filter.js
module.exports = testPaths => {
const allowedPaths = testPaths
.filter(filteringFunction)
.map(test => ({test})); // [{ test: "path1.spec.js" }, { test: "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.

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

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

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

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

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>

Sets a seed value that can be retrieved in a test file 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

Si cette option n'est pas spécifiée, Jest générera aléatoirement la valeur. 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

Prints the seed value in the test report summary. See --seed=<num> for the details.

Can also be set in configuration. See 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. 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.

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

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

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

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

astuce

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.