Quero fazer apenas um teste com Jest.
Eu uso it.only
ou describe.only
, mas ainda executa muitos testes. Acho que executa todos os testes desde meu último commit, mas não deveria ter esse comportamento com o only
sinalizador definido explicitamente, certo?
O que causa esse comportamento e como posso executar um único teste?
javascript
unit-testing
jestjs
Jpenna
fonte
fonte
Respostas:
fit
,fdescribe
eit.only
,describe.only
têm o mesmo propósito: pular outros testes e executar apenas eu.Fonte: https://github.com/facebook/jest/issues/698#issuecomment-177673281
Use o mecanismo de filtragem Jest. Quando você executa seus testes como,
você pode filtrar os testes por um
testname
oufilename
. Basta seguir as instruções do terminal.Pressione
p
e digite um nome de arquivo.Em seguida, você pode usar
describe.only
eit.only
que irá ignorar todos os outros testes do arquivo testado e filtrado.fonte
.only
só funciona para os testes do mesmo arquivo?it.only
ouit.skip
para um único teste que contenha erro de sintaxe, todos os testes falharão. É claro que o código de arquivos excluídos por padrão não será executado. imgur.com/z9FlQEZif.only
console.logs do componente Carrossel, tantas vezes quanto houver testes ignorados / não ignorados para esse componente em seus padrões de relógio.it.only
edescribe.only
funcionam apenas para o módulo em que estão. Se estiver tendo problemas para filtrar testes em vários arquivos, você pode usarjest -t name-of-spec
testes de filtragem que correspondem ao nome especificado (comparar com o nome em describe ou test).Fonte: Opções Jest CLI
Por exemplo, eu foco o teste que estou escrevendo atualmente assim (com o script de teste no
package.json
):npm test -- -t "test foo"
fonte
describe
bloco de teste ). Se for esse o caso, você deve restringir o nome do teste exato que deseja focar.Para mim, funciona se eu usar dois parâmetros como este:
yarn test --watch -f "src/...fullpath.../reducer.spec.js" -t "Name of the test"
Bandeiras:
--watch: is optional -f: will do filtering of your files, so if you have a lot of tests with the same name, specify the full path to the exact file -t: works with 'describe' name or 'it' name of your test
fonte
É tipo isso:
jest sometest.test.js -t "some expression to match a describe or a test"
Ele testará todos os arquivos com o nome
sometest.test.js
e correspondência com base na opção -t. Se você deseja testar apenas um arquivo específico, pode fazer o seguinte:fonte
launch.json
arquivo de configuração VSCode que irá acionar os testes em um caso de teste específico: medium.com/better-programming/…