Skip to main content
Version: 27.0

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.

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

Options#

Nota: As opções CLI têm prioridade sobre os valores da [Configuração](Configuration. md).


Reference#

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#

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.

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. Nota: limpar o cache irá reduzir o desempenho.

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

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

--coverageProvider=<provider>#

Indicates which provider should be used to instrument code for coverage. Allowed values are babel (default) or v8.

Note that using v8 is considered experimental. This uses V8's builtin code coverage rather than one based on Babel. It is not as well tested, and it has also improved in the last few releases of Node. Using the latest versions of node (v14 at the time of this writing) will yield better results.

--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 method receives a list of tests which can be manipulated to exclude tests from running. Especially useful when used in conjunction with a testing infrastructure to filter known broken.

--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. 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. Você pode usar --detectOpenHandles para ajudar a rastreá-los.

--help#

Exibe a informação de ajuda, similar a esta página.

--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);
});

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. O JSON retornado está documentado em testResultsProcessor.

--lastCommit#

Executa todos os testes que sofreram alteração no último commit feito. Comporta-se de forma semelhante a --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>#

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

--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. Note que se os arquivos de configuração forem encontrados nos caminhos especificados, todos os projetos especificados dentro desses arquivos de configuração serão executados.

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

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

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

Execute apenas os testes dos projetos especificados. 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.

--runTestsByPath#

Executar apenas os testes especificados com seus caminhos exatos.

Nota: A expressão regular padrão correspondente funciona bem em pequenas execuções, mas torna-se lenta se fornecida com vários padrões e/ou contra vários testes. Esta opção substitui a lógica regex correspondente e por isso otimiza o tempo que leva Jest para filtrar arquivos de teste específicos

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

Evita que testes imprimam mensagens no console.

--silent#

Evita que testes imprimam mensagens no console.

--testNamePattern=<regex>#

Abreviação: -t. Execute apenas testes com um nome que corresponda à regex. Por exemplo, suponha que você deseja executar apenas testes relacionados a autorização, que terão nomes como "GET /api/posts com autenticação", então você pode usar jest -t=auth.

Nota: A expressão regular é combinada com o nome completo, que é uma combinação do nome do teste e todos os blocos ao redor.

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

--testRunner=<path>#

Permite que você especifique um executador de testes personalizado.

--testRunner=<path>#

Permite que você especifique uma sequência de testes personalizada. Por favor, consulte a documentação da propriedade de configuração correspondente para obter detalhes.

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

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

Você pode usar --watchAll=false para explicitamente desabilitar o watch mode. 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.