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
- Yarn
- pnpm
- Bun
npm test -- -u -t="ColorPicker"
yarn test -u -t="ColorPicker"
pnpm test -u -t="ColorPicker"
bun run 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
CLI options take precedence over values from the Configuration.
- Camelcase & dashed args support
- Options
- Référence
jest <regexForTestFiles>--bail[=<n>]--cache--changedFilesWithAncestor--changedSince--ci--clearCache--clearMocks--collectCoverageFrom=<glob>--colors--config=<path>--coverage[=<boolean>]--coverageDirectory=<path>--coverageProvider=<provider>--debug--detectOpenHandles--env=<environment>--errorOnDeprecated--expand--filter=<file>--findRelatedTests <spaceSeparatedListOfSourceFiles>--forceExit--help--ignoreProjects <project1> ... <projectN>--init--injectGlobals--json--lastCommit--listTests--logHeapUsage--maxConcurrency=<num>--maxWorkers=<num>|<string>--noStackTrace--notify--onlyChanged--onlyFailures--openHandlesTimeout=<milliseconds>--outputFile=<filename>--passWithNoTests--projects <path1> ... <pathN>--randomize--reporters--resetMocks--restoreMocks--roots--runInBand--runTestsByPath--seed=<num>--selectProjects <project1> ... <projectN>--setupFilesAfterEnv <path1> ... <pathN>--shard--showConfig--showSeed--silent--testEnvironmentOptions=<json string>--testLocationInResults--testMatch glob1 ... globN--testNamePattern=<regex>--testPathIgnorePatterns=<regex>|[array]--testPathPattern=<regex>--testRunner=<path>--testSequencer=<path>--testTimeout=<number>--updateSnapshot--useStderr--verbose--version--watch--watchAll--watchman--workerThreads
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.
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.
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.
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 by returning an object with shape { filtered: Array<{ test: string }> }. Especially useful when used in conjunction with a testing infrastructure to filter known broken tests, e.g.
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. 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.
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.
--init
Génére un fichier de configuration de base. Based on your project, Jest will ask you a few questions that will help to generate a jest.config.js file with a short description for each option.
--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);
});
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 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).
--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.
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
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
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
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.
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.
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 --testPathPattern, 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.
--testPathPattern=<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.
--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.
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.
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.
This is experimental feature. See the workerThreads configuration option for more details.