Jest CLI Options
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 my-test #or
jest path/to/my-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.
Usando com o yarn
Se você rodar Jest via yarn test
, você pode passar os argumentos de linha de comando diretamente como "Jest arguments".
Ao invés de:
jest -u -t="ColorPicker"
você pode usar:
yarn test -u -t="ColorPicker"
Usando com "npm scripts"
Se você rodar Jest por npm test
, você ainda pode usar os argumentos da linha de comando inserindo um --
entre npm test
e o "Jest arguments".
Ao invés de:
jest -u -t="ColorPicker"
você pode usar:
npm test -- -u -t="ColorPicker"
Suporte a argumentos camelCase & tracejados
Jest suporta os formatos camelCase e tracejado para os argumentos (args). Os exemplos a seguir produzem o mesmo resultado:
jest --collect-coverage
jest --collectCoverage
Os formatos de argumentos também podem ser misturados:
jest --update-snapshot --detectOpenHandles
Opções
Note: CLI options take precedence over values from the Configuration.
jest <regexForTestFiles>
--bail
--cache
--changedFilesWithAncestor
--changedSince
--ci
--clearCache
--collectCoverageFrom=<glob>
--colors
--config=<path>
--coverageProvider=<provider>
--debug
--detectOpenHandles
--env=<environment>
--errorOnDeprecated
--expand
--findRelatedTests <spaceSeparatedListOfSourceFiles>
--forceExit
--help
--init
--injectGlobals
--json
--outputFile=<filename>
--lastCommit
--listTests
--logHeapUsage
--maxConcurrency=<num>
--maxWorkers=<num>|<string>
--noStackTrace
--notify
--onlyChanged
--passWithNoTests
--projects <path1> ... <pathN>
--reporters
--roots
--runInBand
--selectProjects <project1> ... <projectN>
--runTestsByPath
--setupTestFrameworkScriptFile=<file>
--showConfig
--silent
--testNamePattern=<regex>
--testLocationInResults
--testPathPattern=<regex>
--testPathIgnorePatterns=[array]
--testRunner=<path>
--testSequencer=<path>
--testTimeout=<number>
--updateSnapshot
--useStderr
--verbose
--version
--watch
--watchAll
--watchman
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. 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
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
. Nota: o cache deve apenas ser desabilitado se você estiver passando por problemas relacionados a ele. De modo geral, desabilitar o cache vai deixar o Jest pelo menos duas vezes mais lento.
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
Runs tests related to the current changes and the changes made in the last commit. Behaves similarly to --onlyChanged
.
--changedSince
Runs tests related to the changes since the provided branch or commit hash. If the current branch has diverged from the given branch, then only changes made locally will be tested. 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. 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
. Nota: limpar o cache irá reduzir o desempenho.
--collectCoverageFrom=<glob>
Um padrão de glob relativo ao rootDir
correspondente aos arquivos dos quais a informação de coverage precisa ser coletada.
--colors
Força os resultados dos testes a serem destacados mesmo se o stdout não for "TTY".
--config=<path>
Abreviação: -c
. The path to a Jest config file specifying how to find and execute tests. Se nenhum `rootDir foi definido nas configurações, o diretório que contém o arquivo de configuração será definido como o <0>rootDir<0> do projeto. Este também pode ser um valor codificado em JSON que o Jest usará como configuração.
--coverage[=]`
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.
--coverageProvider=<provider>
Indica quais providers devem ser usado para tratar os códigos para coverage. Valores permitidos são: babel
(default) ou v8
.
Note that using v8
is considered experimental. Isto usa o code coverage embutido no V8 em vez de uma baseada no Babel. Isto não está tão bem testado. Também sofreu melhorias com o lançamento das últimas versões do Node. Usando a última versão (v14 no momento desta escrita) produzirá melhores resultado.
--debug
Exibe informações de debug sobre a sua configuração do Jest.
--detectOpenHandles
Attempt to collect and print open handles preventing Jest from exiting cleanly. 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. Implementado usando async_hooks. This option has a significant performance penalty and should only be used for debugging.
--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
Make calling deprecated APIs throw helpful error messages. Useful for easing the upgrade process.
--expand
Abreviação: -e
. Use este parâmetro para mostrar erros completos ao invés de detalhes.
--findRelatedTests <spaceSeparatedListOfSourceFiles>
Find and run the tests that cover a space separated list of source files that were passed in as arguments. Useful for pre-commit hook integration to run the minimal amount of tests necessary. Can be used together with --coverage
to include a test coverage for the source files, no duplicate --collectCoverageFrom
arguments needed.
--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. Nota: Esta funcionalidade é uma válvula de escape. 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.
--init
Generate a basic configuration file. 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);
});
Note: 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.
--outputFile=<filename>
Escreve os resultados dos testes em um arquivo quando a opção --json
também é especificada. The returned JSON structure is documented in testResultsProcessor.
--lastCommit
Run all tests affected by file changes in the last commit made. Behaves similarly to --onlyChanged
.
--listTests
Lista todos testes no formato JSON que o Jest executará dado alguns argumentos, e termina. Este comando pode ser usado junto com --findRelatedTests
para saber quais testes Jest irá executar.
--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>
Prevents Jest from executing more than the specified amount of tests at the same time. Only affects tests that use test.concurrent
.
--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.
Para ambientes com numero variável de CPU's disponíveis, você pode utilizar um percentual baseado na configuração --maxWorkers=50%
--noStackTrace
Desabilita o rastreio da pilha na saída dos resultados dos testes.
--notify
Ativa notificações para resultados de testes. 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).
--passWithNoTests
Permite que o conjunto de testes passe quando não são encontrados arquivos.
--projects <path1> ... <pathN>
Run tests from one or more projects, found in the specified paths; also takes path globs. This option is the CLI equivalent of the projects
configuration option. Note that if configuration files are found in the specified paths, all projects specified within those configuration files will be run.
--reporters
Run tests with specified reporters. Reporter options are not available via CLI. Example with multiple reporters:
jest --reporters="default" --reporters="jest-junit"
--roots
Uma lista de caminhos para diretórios que 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.
--selectProjects <project1> ... <projectN>
Run only the tests of the specified projects. 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.
--runTestsByPath
Run only the tests that were specified with their exact paths.
Note: 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
--setupTestFrameworkScriptFile=<file>
O caminho para um módulo que executa algum código para configurar a estrutura de testes antes de cada teste. Tenha cuidado que arquivos importados pelo script de instalação não irão ser simulados durante o teste.
--showConfig
Imprime sua configuração do Jest e fecha.
--silent
Evita que testes imprimam mensagens no console.
--testNamePattern=<regex>
Abreviação: -t
. Run only tests with a name that matches the 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
.
Note: The regex is matched against the full name, which is a combination of the test name and all its surrounding describe blocks.
--testLocationInResults
Adds a location
field to test results. Useful if you want to report the location of a test in a reporter.
Observe que column
é indexado 0 enquanto que line
não é.
{
"column": 4,
"line": 5
}
--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 \
.
--testPathIgnorePatterns=[array]
An 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.
--testRunner=<path>
Permite que você especifique um executador de testes personalizado.
--testSequencer=<path>
Lets you specify a custom test sequencer. Please refer to the documentation of the corresponding configuration property for details.
--testTimeout=<number>
Default timeout of a test in milliseconds. Default value: 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
Desvia toda a saída para o stderr.
--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
.
--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 --watchAll=false
to explicitly disable the watch mode. Note that 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
.