Eu tenho um teste 'funciona com filhos aninhados' no arquivo fix-order-test.js.
A execução abaixo executa todos os testes no arquivo.
jest fix-order-test
Como executo apenas um único teste? O abaixo não funciona, pois procura um arquivo do regex especificado.
jest 'works with nested children'
--testNamePattern
'works with nested children'
Jest CLI Opções #testNamePatternRespostas:
Na linha de comando, use o sinalizador
--testNamePattern
ou-t
Isso executará apenas testes que correspondem ao padrão de nome de teste que você fornece. Está nos documentos do Jest .
Outra maneira é executar testes no modo de exibição
jest --watch
e pressione ppara filtrar os testes digitando o nome do arquivo de teste ou tpara executar um único nome de teste.Se você tem um
it
interior de umdescribe
bloco, precisa executarfonte
it()
função e não o nome do arquivo. Foi o que eu pensei.npm test -- -t "fix order test"
./node_modules/.bin/jest --config=./.jest.config.json ./src/x/y/sites.js/sitesWorker.test.js -t 'given only incorrect sites'
A documentação do Jest recomenda o seguinte:
ou
fonte
test.only
. Então, se você só deseja executar um teste dentro de um arquivo que tem muitos casos de teste dentro de um conjunto de casos de teste que consiste de muitos arquivos que você tem de correr, infelizmente, esse arquivo únicojest myTestFile.test.js
npm test
. Você precisará executar o arquivo sozinho ou pressionarp
para definir um filtro.Conforme mencionado em outras respostas,
test.only
apenas filtra outros testes no mesmo arquivo . Portanto, os testes em outros arquivos ainda seriam executados.Portanto, para executar um único teste, há duas abordagens:
Opção 1: se o nome do seu teste for único, você poderá entrar
t
enquanto estiver no modo de exibição e o nome do teste que deseja executar.Opção 2:
p
enquanto estiver no modo de exibição para inserir uma regex para o nome do arquivo que você deseja executar. (Comandos relevantes como este são exibidos quando você executa o Jest no modo de exibição).it
parait.only
no teste que você deseja executar.Com qualquer uma das abordagens acima, o Jest executará apenas o teste único no arquivo que você especificou.
fonte
Comando completo para executar um único teste Jest
Comando:
node <path-to-jest> -i <you-test-file> -c <jest-config> -t "<test-block-name>"
<path-to-jest>
:node_modules\jest\bin\jest.js
node_modules/.bin/jest
-i <you-test-file>
: caminho para o arquivo com testes (js
outs
)-c <jest-config>
: caminho para um arquivo de configuração Jest separado (JSON), se você mantiver sua configuração Jestpackage.json
, não precisará especificar esse parâmetro (o Jest o encontrará sem a sua ajuda)-t <the-name-of-test-block>
: Na verdade, é um nome (o primeiro parâmetro) dedescribe(...)
,it(...)
outest(...)
bloco.Exemplo:
Então, o comando
node node_modules/jest/bin/jest.js -i test/math-tests.js -c test/tests-config.json -t "1 + 1 = 2"
testará
it("1 + 1 = 2", ...)
, mas se você alterar o-t
parâmetro para"math tests"
, ele executará os dois testes nodescribe("math tests",...)
bloco.Observações:
node_modules/.bin/jest
pornode_modules\jest\bin\jest.js
.'--inspect-brk'
parâmetro ao comandoExecutando um teste Jest único por meio de scripts NPM em 'package.json'
Tendo o Jest instalado, você pode simplificar a sintaxe deste comando (acima) usando scripts do NPM . Em
"package.json"
adicionar um novo script para a"scripts"
seção:Nesse caso, usamos um alias em
'jest'
vez de escrever o caminho completo para ele. Além disso, não especificamos o caminho do arquivo de configuração, pois também podemos inseri-lo"package.json"
e o Jest analisará por padrão. Agora você pode executar o comando:npm run test:math
e o
"math tests"
bloco com dois testes será executado. Ou, é claro, você pode especificar um teste específico por seu nome.Outra opção seria extrair o
<the-name-of-test-block>
parâmetro do"test:math"
script e passá-lo do comando NPM:package.json:
Comando:
npm run test:math "math tests"
Agora você pode gerenciar o nome do (s) teste (s) de execução com um comando muito mais curto.
Observações:
'jest'
comando funcionará com scripts do NPM porquenode
.Executando o teste Jest selecionado no Visual Studio Code
Se você estiver usando o Visual Studio Code, poderá tirar proveito dele e executar o teste atualmente selecionado (no editor de código) pressionando o
F5
botão Para fazer isso, precisaremos criar um novo bloco de configuração de inicialização no".vscode/launch.json"
arquivo. Nessa configuração, usaremos variáveis predefinidas que são substituídas pelos valores apropriados (infelizmente nem sempre ) ao executar. De todos os disponíveis, estamos interessados apenas nestes:${relativeFile}
- o arquivo aberto atual relativo a${workspaceFolder}
${selectedText}
- o texto selecionado atual no arquivo ativoMas antes de escrever a configuração de lançamento, devemos adicionar o
'test'
script em nosso'package.json'
(se ainda não o tivermos).package.json:
então podemos usá-lo em nossa configuração de lançamento.
Iniciar configuração:
na verdade, faz o mesmo que os comandos descritos anteriormente nesta resposta. Agora que tudo está pronto, podemos executar qualquer teste que desejarmos sem precisar reescrever os parâmetros de comando manualmente.
Aqui está tudo o que você precisa fazer:
'F5'
botãoE pronto!
Agora, para executar qualquer teste que você deseja, basta abri-lo no editor, selecione seu nome e pressione F5.
Infelizmente, não será "voila" nas máquinas Windows porque elas substituem (quem sabe o porquê) a
${relativeFile}
variável pelo caminho com barras invertidas e o Jest não entenderia esse caminho.Observações:
'--inspect-brk'
parâmetro'package.json'
.fonte
npx
para simplificar bastante a chamada ao Jest, independentemente do sistema operacional.Você também pode usar
f
oux
para focar ou excluir um teste. Por exemplofonte
xit
funcionou para mim, masfit
não. Estou usando [email protected].fit
trabalha em [email protected] para mim.f
funciona apenas dentro de um arquivo.Como dito acima, você pode executar o comando
Se você tem um
it
interior de umdescribe
bloco, precisa executarfonte
Se você estiver
jest
executando como um comando de script, algo comonpm test
, será necessário usar o seguinte comando para fazê-lo funcionar:fonte
com a versão mais recente do gracejo , você pode usar um dos seguintes para executar apenas um teste, o mesmo para o conjunto de testes.
jest 'test 1'
também pode funcionar se o nome do teste for único.fonte
No VS Code, isso permite executar / depurar apenas um teste Jest, com pontos de interrupção: https://github.com/Microsoft/vscode-recipes/tree/master/debugging-jest-tests
Meu
launch.json
tem isso dentro:e isso em
package.json
:test
(ouit
) paratest.only
(ouit.only
). Para executar um conjunto de testes (vários testes), mudedescribe
paradescribe.only
.Jest Current File
.fonte
"scripts": { "test": "jest" }
empackage.json
causa tiver especificado o caminho completo no"program"
parâmetrolaunch.json
.Aqui está a minha opinião:
./node_modules/.bin/jest --config test/jest-unit-config.json --runInBand src/components/OpenForm/OpenForm.spec.js -t 'show expanded'
Notas:
./node_modules/.bin/...
é uma maneira maravilhosa de acessar o binário jest (ou mocha ou ...) instalado localmente que acompanha o pacote instalado localmente. (sim, em seus scripts npm você podejest
sem nada antes, mas isso é útil na linha de comando ... (isso também é um bom começo para sua configuração de depuração, qualquer que seja o IDE que você esteja usando ...)package.json
), é isso que você precisa.--runInBand
- como dito, não conheço sua configuração, mas se você se concentra no desenvolvimento / correção de um único teste, prefere não lidar com os trabalhadores da Web ...-t
para não executar todos os testes nesse arquivo, mas apenas um (aqui: aquele que tem algo com 'show expanded
' em seu nome). O mesmo efeito pode ser alcançado colando.only()
-se nesse arquivo.fonte
apenas um pequeno complemento, porque parece que houve uma briga se usar
./node_modules/.bin/jest -i ...
ou apenasjest -i ...
ounpm test -- -i ...
jest
funciona se você o tiver instalado globalmente (como no npm install -g jest), uma maneira não tão limpa de lidar com dependênciasnpx jest -i ...
=> é exatamente para isso que serve o npx. evita que você escreva./node_modules/.bin/...
fonte
Agora existe um bom plugin de brincadeira para esse chamado,
jest-watch-typeahead
que torna esse processo muito mais simples.fonte
Isso funcionará apenas se o nome da sua especificação de teste for único. O código acima faria referência
um arquivo com este nome:
test-name.component.spec.ts
fonte