Opções CLI do Jest
A ferramenta de linha de comando do Jest
possui inúmeras opções úteis. Você pode executar jest --help
para exibir todas as opções disponíveis. Muitas das opções exibidas abaixo também podem ser usadas juntas para rodar testes da forma que você desejar. Cada uma das opções de Configuração do Jest também podem ser especificadas através do CLI.
Aqui está um breve resumo:
Executando pela linha de comando
Executar todos os testes (padrão):
jest
Executar apenas testes especificados com um padrão ou nome de arquivo:
jest meu-test #or
jest path/to/meu-test.js
Executar testes para arquivos alterados baseado no hg/git (arquivos não commitados):
jest -o
Executar testes para os arquivos path/to/fileA.js
e path/to/fileB.js
:
jest --findRelatedTests path/to/fileA.js path/to/fileB.js
Execute testes que correspondam com o nome da spec (basicamente que correspondam ao nome que esteja no describe
ou test
).
jest -t name-of-spec
Execute em modo "watch":
jest --watch #runs jest -o by default
jest --watchAll #runs all tests
O modo "watch" também permite especificar o nome ou diretório de um arquivo podendo assim focar em um contexto específico de testes.
Using with package manager
If you run Jest via your package manager, you can still pass the command line arguments directly as Jest arguments.
Ao invés de:
jest -u -t="ColorPicker"
você pode usar:
- npm
- Yarn
- pnpm
npm test -- -u -t="ColorPicker"
yarn test -u -t="ColorPicker"
pnpm test -u -t="ColorPicker"
Camelcase & dashed args support
Jest supports both camelcase and dashed arg formats. The following examples will have an equal result:
jest --collect-coverage
jest --collectCoverage
Arguments can also be mixed:
jest --update-snapshot --detectOpenHandles
Opções
CLI options take precedence over values from the Configuration.
- Camelcase & dashed args support
- Opções
- Referência
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
--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>
--testRunner=<path>
--testTimeout=<number>
--updateSnapshot
--useStderr
--verbose
--version
--watch
--watchAll
--watchman
--workerThreads
Referência
jest <regexForTestFiles>
Quando você roda jest
com um argumento, aquele argumento é tratado como uma expressão regular para corresponder aos arquivos do seu projeto. É possível executar a suíte de testes provendo um "pattern", padrão construído usando expressões regulares. Apenas os arquivos que corresponderem com o "pattern" serão selecionados e executados. Dependendo do seu terminal, talvez seja necessário colocar esse argumento entre aspas: jest "my.*(complex)?pattern"
. On Windows, you will need to use /
as a path separator or escape \
as \\
.
--bail[=<n>]
Alias: -b
. Sair dos testes imediatamente quando o número de falhas atingir n
. O padrão é 1
.
--cache
Se deve usar o cache. O padrão é verdadeiro. Desabilite o cache usando --no-cache
.
The cache should only be disabled if you are experiencing caching related problems. On average, disabling the cache makes Jest at least two times slower.
Se você deseja inspecionar o cache, use --showConfig
e veja o valor da cacheDirectory
. Se você precisar limpar o cache, use --clearCache
.
--changedFilesWithAncestor
Executa testes relacionados às alterações atuais e as alterações feitas no último commit. Comporta-se de forma semelhante a --onlyChanged
.
--changedSince
Executa testes relacionados às alterações desde a versão fornecida da branch ou o hash do commit. Se a branch atual divergiu do branch fornecido, somente as alterações feitas localmente serão testadas. Comporta-se de forma semelhante a --onlyChanged
.
--ci
Quando esta opção é fornecida, Jest assumirá que é executado em um ambiente de CI (integração contínua). Isso muda o comportamento quando é encontrado um novo "snapshot". Em vez do comportamento normal de armazenar um novo "snapshot" automaticamente, o teste irá falhar e exigir Jest ser executado com --updateSnapshot
.
--clearCache
Exclui o diretório de cache do Jest e em seguida sai sem executar testes. Deletará o cacheDirectory
se a opção é passada, senão deletará o diretório de cache padrão do Jest. O diretório de cache padrão pode ser encontrado executando jest --showConfig
.
Clearing the cache will reduce performance.
--clearMocks
Automatically clear mock calls, instances, contexts and results before every test. Equivalent to calling jest.clearAllMocks()
before each test. This does not remove any mock implementation that may have been provided.
--collectCoverageFrom=<glob>
Um padrão glob relativo ao rootDir
correspondente aos arquivos dos quais a informação de cobertura precisa ser coletada.
--colors
Força os resultados dos testes a serem destacados mesmo se o stdout não for "TTY".
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>
Abreviação: -c
. O caminho para um arquivo de configuração Jest especificando como localizar e executar testes. Se nenhum rootDir
foi definido nas configurações, o diretório contendo o arquivo de configuração será definido como o rootDir
do projeto. Este também pode ser um valor codificado em JSON que o Jest usará como configuração.
--coverage[=<boolean>]
Alias: --collectCoverage
. Indica que as informações de coleta do teste devem ser coletadas e reportadas no console. Você pode opcionalmente passar <boolean>
para sobrepor a opção definida no arquivo de configuração.
--coverageDirectory=<path>
The directory where Jest should output its coverage files.
--coverageProvider=<provider>
Indica qual provedor deve ser usado para o código do instrumento de cobertura. Valores permitidos são babel
(padrão) ou v8
.
--debug
Exibe informações de debug sobre a sua configuração do Jest.
--detectOpenHandles
Tenta coletar e imprimir os manipuladores que estejam abertos impedindo o Jest de sair de forma limpa. Use isso nos casos em que você precisa usar --forceExit
para que Jest saia potencialmente para rastrear a razão. Isso implica --runInBand
, fazendo testes rodarem em série. Implementado usando async_hooks
. Esta opção tem uma penalização de desempenho significativa e só deve ser usada para depuração.
--env=<environment>
O ambiente de testes usado para todos os testes. Ele pode apontar para qualquer arquivo ou módulo node. Exemplos: jsdom
, node
ou path/to/my-environment.js
.
--errorOnDeprecated
Fazer chamada de APIs obsoletas lançam mensagens de erro úteis. Útil para facilitar o processo de atualização.
--expand
Abreviação: -e
. Use este parâmetro para mostrar erros completos ao invés de detalhes.
--filter=<file>
Path to a module exporting a filtering function. 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>
Encontre e execute testes que cobrem uma lista de arquivos de origem separados por espaço que foram passados como argumentos. Útil para a integração do hook de pré-commit para executar a quantidade mínima de testes necessários. Pode ser usado junto com --coverage
para incluir uma cobertura de teste para os arquivos de origem, nenhum argumento duplicado --collectCoverageDe
é necessário.
--forceExit
Força o Jest a fechar depois que todos os testes estiverem concluídos. Isto é útil quando recursos configurados pelo código de teste não podem ser limpos adequadamente.
This feature is an escape-hatch. Se o Jest não fechar ao final da execução de um teste, significa que recursos externos estão sendo mantidos aguardando ou temporizadores que ainda estão pendentes em seu código. É aconselhável destruir recursos externos depois de cada teste para certificar que o Jest possa ser fechado corretamente. You can use --detectOpenHandles
to help track it down.
--help
Exibe a informação de ajuda, similar a esta página.
--ignoreProjects <project1> ... <projectN>
Ignore the tests of the specified projects. Jest usa o atributo displayName
na configuração para identificar cada projeto. Se você usar esta opção, deve fornecer um displayName
para todos os seus projetos.
--init
Gerando um arquivo de configuração básico. Baseado no seu projeto, Jest fará algumas perguntas que ajudarão a gerar um arquivo . jest.config.js
com uma curta descrição para cada opção.
--injectGlobals
Insere os globais do Jest (expect
, test
, describe
, beforeEach
etc.) no ambiente global. Se você definir isso como falso
, você deve importar de @jest/globals
.
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
Imprime os resultados do teste em JSON. Este modo enviará todas as outras saídas dos testes e mensagens do usuário para o stderr.
--lastCommit
Executa todos os testes que sofreram alteração no último commit feito. Comporta-se de forma semelhante a --onlyChanged
.
--listTests
Lists all test files that Jest will run given the arguments, and exits.
--logHeapUsage
Imprime os logs de uso da heap depois de cada teste. Útil para debug de vazamento de memória. Use junto com --runInBand
e --expose-gc
no node.
--maxConcurrency=<num>
Previne o Jest de executar mais que a quantidade especificada de testes ao mesmo tempo. Só afeta os testes que usam test.concurret
.
--maxWorkers=<num>|<string>
A versão comprimida: -w
. Especifica o número máximo de workers que o worker-pool irá entregar para os testes em execução. In single run mode, this defaults to the number of the cores available on your machine minus one for the main thread. In watch mode, this defaults to half of the available cores on your machine to ensure Jest is unobtrusive and does not grind your machine to a halt. It may be useful to adjust this in resource limited environments like CIs but the defaults should be adequate for most use-cases.
Desabilita o rastreio da pilha na saída dos resultados dos testes.
--noStackTrace
Desabilita o rastreio da pilha na saída dos resultados dos testes.
--notify
Ativa as notificações para os resultados do teste. Bom para quando você não quer que sua consciência se concentre em qualquer outra coisa que não seja testar Javascript.
--onlyChanged
Abreviação: -o
. Tenta identificar quais testes devem ser executados baseado nos arquivos modificados no repositório atual. Só funciona se você estiver rodando testes em um repositório git/hg no momento e requer um gráfico de dependências estático (ou seja, sem "requires" dinâmicos).
--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>
Escreve os resultados dos testes em um arquivo quando a opção --json
também é especificada. O JSON retornado está documentado em testResultsProcessor.
--passWithNoTests
Permite que o conjunto de testes passe quando não são encontrados arquivos.
--projects <path1> ... <pathN>
Execute testes de um ou mais projetos encontrados nos caminhos especificados; também aceita globos de caminho. Esta opção é a CLI equivalente de projetos
opção de configuração.
If configuration files are found in the specified paths, all projects specified within those configuration files will be run.
--randomize
Shuffle the order of the tests within a file. The shuffling is based on the seed. See --seed=<num>
for more info.
Seed value is displayed when this option is set. Equivalent to setting the CLI option --showSeed
.
jest --randomize --seed 1234
This option is only supported using the default jest-circus
test runner.
--reporters
Execute testes com reportadores especificados. Opções de reportador não estão disponíveis via CLI. Exemplo com vários reportadores:
jest --reporters="default" --reporters="jest-junit"
--resetMocks
Automatically reset mock state before every test. Equivalent to calling jest.resetAllMocks()
before each test. This will lead to any mocks having their fake implementations removed but does not restore their initial implementation.
--restoreMocks
Automatically restore mock state and implementation before every test. Equivalent to calling jest.restoreAllMocks()
before each test. This will lead to any mocks having their fake implementations removed and restores their initial implementation.
--roots
Uma lista de caminhos para diretórios que o Jest deve usar para pesquisar por arquivos.
--runInBand
Abreviação: -i
. Executa todos os testes do processo atual serialmente, ao invés de criar um conjunto de trabalhadores de processos filhos que executam os testes. Pode ser útil para depuração.
--runTestsByPath
Executar apenas os testes especificados com seus caminhos exatos. This avoids converting them into a regular expression and matching it against every single file.
For example, given the following file structure:
__tests__
└── t1.test.js # test
└── t2.test.js # test
When ran with a pattern, no test is found:
jest --runTestsByPath __tests__/t
Output:
No tests found
However, passing an exact path will execute only the given test:
jest --runTestsByPath __tests__/t1.test.js
Output:
PASS __tests__/t1.test.js
The default regex matching works fine on small runs, but becomes slow if provided with multiple patterns and/or against a lot of tests. This option replaces the regex matching logic and by that optimizes the time it takes Jest to filter specific test files.
--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.
--selectProjects <project1> ... <projectN>
Run the tests of the specified projects. Jest usa o atributo displayName
na configuração para identificar cada projeto. Se você usar esta opção, deve fornecer um displayName
para todos os seus projetos.
--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.
--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.
For example, to split the suite into three shards, each running one third of the tests:
jest --shard=1/3
jest --shard=2/3
jest --shard=3/3
--showConfig
Exibe sua configuração do Jest e, então, encerra.
--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
Evita que testes imprimam mensagens no console.
--testEnvironmentOptions=<json string>
A JSON string with options that will be passed to the testEnvironment
. The relevant options depend on the environment.
--testLocationInResults
Adiciona um campo local
para testar os resultados. Útil se você quiser relatar a localização de um teste em um reportador.
Observe que o índice de column
começa em 0 enquanto que line
começa em 1.
{
"column": 4,
"line": 5
}
--testMatch glob1 ... globN
The glob patterns Jest uses to detect test files. Please refer to the testMatch
configuration for details.
--testNamePattern=<regex>
Abreviação: -t
. Execute apenas testes com um nome que corresponda à 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
.
The regex is matched against the full name, which is a combination of the test name and all its surrounding describe blocks.
--testPathIgnorePatterns=<regex>|[array]
A single or array of regexp pattern strings that are tested against all tests paths before executing the 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/
. These two examples are equivalent.
--testPathPattern=<regex>
Uma string de padrão regexp que é comparada com todos os caminhos para os testes antes da execução dos testes. On Windows, you will need to use /
as a path separator or escape \
as \\
.
--testRunner=<path>
Permite que você especifique um executador de testes personalizado.
--testRunner=<path>
Permite que você especifique uma sequência de testes personalizada. Please refer to the testSequencer
configuration for details.
--testTimeout=<number>
Tempo limite padrão de um teste em milissegundos. Valor padrão: 5000.
--updateSnapshot
Abreviação: -u
. Use este sinalizador para gravar novamente cada snapshot que falhar durante esta execução do teste. Pode ser usado em conjunto com um padrão da suite de teste ou com --testNamePattern
para regravar os "snapshots".
--useStderr
Exibe resultados de testes individuais com a hierarquia da suite de testes.
--verbose
Exibe resultados de testes individuais com a hierarquia da suite de testes.
--version
Abreviação: -v
. Imprime a versão e fecha.
--watch
Vigia arquivos por alterações e roda novamente testes relacionados aos arquivos alterados. Se você deseja rodar novamente todos os testes quando um arquivo for modificado, use a opção --watchAll
.
Use --no-watch
(or --watch=false
) to explicitly disable the watch mode if it was enabled using --watch
. Note que na maioria dos ambientes de CI, isso é tratado automaticamente para você.
--watchAll
Vigia arquivos para alterações e roda novamente todos os testes quando algo muda. Se você deseja rodar apenas testes que dependem dos arquivos alterados, use a opção --watch
.
Use --no-watchAll
(or --watchAll=false
) to explicitly disable the watch mode if it was enabled using --watchAll
. Note que na maioria dos ambientes de CI, isso é tratado automaticamente para você.
--watchman
Se usa watchamn
para rastreamento de arquivo. O padrão é true
. Pode desabilitar usando --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.