Eu uso o Mocha para testar minhas coisas de JavaScript. Meu arquivo de teste contém 5 testes. É possível executar um teste específico (ou conjunto de testes) em vez de todos os testes no arquivo?
javascript
mocha
Misha Moroshko
fonte
fonte
--grep
apenas filtrava as@
tags.mocha some/test.js
) não funcionou. obrigado!logs a bcd
que contém alogs a
substring? Regexp^$
não está funcionando no 0.10.2.Dependendo do seu padrão de uso, você pode gostar de usar apenas . Nós usamos o estilo TDD; Se parece com isso:
Somente este teste será executado em todos os arquivos / suítes.
fonte
it.only
.it.only
não vai trabalhar em conjunto comgiven
de mocha-testdata . E é fácil esquecer de removê-lo mais tarde.eslint-plugin-mocha
tem uma regrano-exclusive-tests
que o pegará se você esquecer de removê-lo.only
.Se você estiver usando
npm test
(usando scripts package.json), use um extra--
para passar o parâmetro para o mochapor exemplo
npm test -- --grep "my second test"
EDIT : Parece que
--grep
pode ser um pouco exigente (provavelmente dependendo dos outros argumentos). Você pode:Modifique o package.json:
Ou então use o
--bail
que parece ser menos exigentefonte
--grep
pode ser um pouco exigente - tente colocá-lo logo após o mocha na entrada de script npm. Outra coisanpm test -- --bail
é útil para salvamento após o primeiro teste que falha--grep
salvar meu dia! Muito obrigado. PS. Eu estou no Windows, rodandonpm test -- --grep @tag
executar teste único - por nome de arquivo -
Na verdade, também é possível executar um único teste de mocha por nome de arquivo (não apenas por „it () - string-grepping“) se você remover o padrão glob (por exemplo
./test/**/*.spec.js
) do seu mocha.opts, criar uma cópia, respectivamente:Aqui está o meu mocha.single.opts (só é diferente em perder a linha glob acima mencionada)
Antecedentes: Embora você possa substituir as várias opções do arquivo opts (começando com
--
), você não pode substituir a glob . Esse link também tem algumas explicações.Dica: se
node_modules/.bin/mocha
confunde você, use o pacote local mocha. Você também pode escrever apenasmocha
se estiver instalado globalmente.E se você deseja o conforto de
package.json
: Ainda: remova o**/*
globo -ish do seumocha.opts
, insira-o aqui, para todos os testes, deixe-os fora para o único teste:uso:
respectivamente
(cuidado com o
--
!)fonte
Warning: Could not find any test files matching pattern: $1
Basta usar .only antes de 'descrever', 'isso' ou 'contexto'. Eu corro usando "$ npm run test: unit" e ele executa apenas unidades com .only.
fonte
Oi soluções acima não funcionou para mim. A outra maneira de executar um único teste é
Isso ajuda a executar um caso de teste a partir de um único arquivo e com nome específico.
fonte
-g
e você não precisará especificar um nome de arquivo. Se você não pode escrever uma expressão que seja seletiva o suficiente, isso significa que você não está nomeando seus testes corretamente.por exemplo :
aqui 'test / api / controllers / test.js' é o caminho do arquivo.
fonte
Você pode tentar "it.only"
neste o primeiro só irá executar
fonte
--forbid-only
no servidor de CI / build..only
tem uma tendência a se infiltrar na ramificação principal e tornar os outros testes mudos, pois eles simplesmente não serão mais executados. Cheguei a pensar no fluxo de trabalho de alteração de código para executar testes diferentes de um anti-recurso. O executor de teste deve determinar quais testes devem ser executados (também conhecidos como testes marcados) e não o desenvolvedor.it.only
a repo #Olhando para https://mochajs.org/#usage , vemos que basta usar
vai funcionar. Você pode omitir os '.js' no final.
fonte
Não sei por que o método grep não está funcionando para mim ao usar o teste npm. Isso funciona embora. Eu também preciso especificar a pasta de teste também por algum motivo.
teste npm - test / sometest.js
fonte
Consolide todos os seus testes em um arquivo test.js e seu pacote json add scripts como:
Digite o comando no seu diretório de teste:
fonte