Aller au contenu principal
Version : Suivant

Options de Jest CLI

The jest command line runner has a number of useful options. You can run jest --help to view all available options. Plusieurs des options présentées ci-dessous peuvent également être utilisées ensemble pour exécuter les tests exactement comme vous le souhaitez. Every one of Jest's Configuration options can also be specified through the 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

Run tests related to path/to/fileA.js and path/to/fileB.js:

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

Run tests that match this spec name (match against the name in describe or test, basically).

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"

Camelcase & dashed args support

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

CLI options take precedence over values from the Configuration.


Référence

jest <regexForTestFiles>

When you run jest with an argument, that argument is treated as a regular expression to match against files in your project. 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. Depending on your terminal, you may need to quote this argument: jest "my.*(complex)?pattern". On Windows, you will need to use / as a path separator or escape \ as \\.

--bail[=<n>]

Alias: -b. Exit the test suite immediately upon n number of failing test suite. Defaults to 1.

--cache

Utilisation du cache. Valeur par défaut: true. Disable the cache using --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.

If you want to inspect the cache, use --showConfig and look at the cacheDirectory value. If you need to clear the cache, use --clearCache.

--changedFilesWithAncestor

Exécute les tests relatifs aux changements actuels et aux changements effectués dans le dernier commit. Behaves similarly to --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. Behaves similarly to --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é. Instead of the regular behavior of storing a new snapshot automatically, it will fail the test and require Jest to be run with --updateSnapshot.

--clearCache

Supprime le répertoire de cache Jest, puis quitte sans exécuter de tests. Will delete cacheDirectory if the option is passed, or Jest's default cache directory. The default cache directory can be found by calling 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. Equivalent to calling jest.clearAllMocks() before each test. Cela ne supprime aucune implémentation simulée qui aurait pu être fournie.

--collectCoverageFrom=<glob>

A glob pattern relative to rootDir matching the files that coverage info needs to be collected from.

--colors

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

remarque

Alternatively you can set the environment variable FORCE_COLOR=true to forcefully enable or FORCE_COLOR=false to disable colorized output. The use of FORCE_COLOR overrides all other color support checks.

--config=<path>

Alias: -c. Le chemin vers un fichier de config jest décrivant comment trouver et exécuter les tests. If no rootDir is set in the config, the directory containing the config file is assumed to be the rootDir for the project. 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. Optionally pass <boolean> to override option set in 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. Allowed values are babel (default) or 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. Use this in cases where you need to use --forceExit in order for Jest to exit to potentially track down the reason. This implies --runInBand, making tests run serially. Implemented using 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. Examples: jsdom, node or 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. This asynchronous function receives a list of test paths which can be manipulated to exclude tests from running and must return an object with shape { filtered: Array<string> } containing the tests that should be run by Jest. Particulièrement utile lorsqu'il est utilisé en conjonction avec une infrastructure de test pour filtrer les pannes connues.

my-filter.js
// This filter when applied will only run tests ending in .spec.js (not the best way to do it, but it's just an example):
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. Can be used together with --coverage to include a test coverage for the source files, no duplicate --collectCoverageFrom arguments needed.

--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. You can use --detectOpenHandles to help track it down.

--help

Afficher l'aide, similaire à cette page.

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

Ignore les tests des projets spécifiés. Jest uses the attribute displayName in the configuration to identify each project. If you use this option, you should provide a displayName to all your projects.

--injectGlobals

Insert Jest's globals (expect, test, describe, beforeEach etc.) into the global environment. If you set this to false, you should import from @jest/globals, e.g.

import {expect, jest, test} from '@jest/globals';

jest.useFakeTimers();

test('some test', () => {
expect(Date.now()).toBe(0);
});
remarque

This option is only supported using the default jest-circus test runner.

--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. Behaves similarly to --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. Use together with --runInBand and --expose-gc in node.

--maxConcurrency=<num>

Empêche Jest d'exécuter plus que le nombre spécifié de tests en même temps. Only affects tests that use 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.

For environments with variable CPUs available, you can use percentage based configuration: --maxWorkers=50%

--noStackTrace

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

--notify

Active les notifications de l'OS 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. To display the notifications Jest needs the node-notifier package, which must be installed separately.

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

--onlyFailures

Alias: -f. Run tests that failed in the previous execution.

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

Write test results to a file when the --json option is also specified. The returned JSON structure is documented in 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. This option is the CLI equivalent of the projects configuration option.

remarque

If configuration files are found in the specified paths, all projects specified within those configuration files will be run.

--randomize

Mélange l'ordre des tests dans un fichier. Le mélange est basé sur la valeur de l'argument seed. See --seed=<num> for more info.

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

This option is only supported using the default jest-circus test runner.

--reporters

Exécuter les tests avec les rapporteurs spécifiés. Reporter options are not available 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. Equivalent to calling jest.resetAllMocks() before each 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. Equivalent to calling jest.restoreAllMocks() before each 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>

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

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.

Jest uses the seed internally for shuffling the order in which test suites are run. If the --randomize option is used, the seed is also used for shuffling the order of tests within each describe block. When dealing with flaky tests, rerunning with the same seed might help reproduce the failure.

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

Exécute les tests des projets spécifiés. Jest uses the attribute displayName in the configuration to identify each project. If you use this option, you should provide a displayName to all your projects.

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

The test suite shard to execute in a format of (?<shardIndex>\d+)/(?<shardCount>\d+).

shardIndex describes which shard to select while shardCount controls the number of shards the suite should be split into.

shardIndex and shardCount have to be 1-based, positive numbers, and shardIndex has to be lower than or equal to shardCount.

When shard is specified the configured testSequencer has to implement a shard method.

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. See --seed=<num> for the details.

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

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

--testLocationInResults

Adds a location field to test results. 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. Please refer to the testMatch configuration for details.

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

To pass as an array use escaped parentheses and space delimited regexps such as \(/node_modules/ /tests/e2e/\). Alternatively, you can omit parentheses by combining regexps into a single regexp like /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. On Windows, you will need to use / as a path separator or escape \ as \\.

--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é. Please refer to the testSequencer configuration for details.

--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. Can be used together with a test suite pattern or with --testNamePattern to re-record 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.

--waitForUnhandledRejections

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. If you want to re-run all tests when a file has changed, use the --watchAll option instead.

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. If you want to re-run only the tests that depend on the changed files, use the --watch option.

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

Whether to use watchman for file crawling. Defaults to true. Disable using --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.