Consigo testar vários arquivos usando o Jest, mas não consigo descobrir como testar um único arquivo.
Eu tenho:
- Corre
npm install jest-cli --save-dev
- Atualizado
package.json
: `{..." scripts ": {" test ":" jest "} ...} - Escreveu uma série de testes.
A execução npm test
funciona conforme o esperado (atualmente executa 14 testes).
Como testo um único arquivo, por exemplo, teste app/foo/__tests__/bar.spec.js
?
Eu tentei executar npm test app/foo/__tests__/bar.spec.js
(da raiz do projeto), mas recebo o seguinte erro:
npm ERR! Error: ENOENT, open '<path to project>/node_modules/app/foo/__tests__/bar.spec.js/package.json'
obrigado
jest bar.spec.js
dájest: command not found
. Eu confirmei que o Jest está instalado (npm list -g jest
shows[email protected]
). FWIW, quando eu corro usandonpm test
ele usajest-cli
.jest-cli
é o módulo certo, instale-o globalmentenpm install -g jest-cli
.jest
em npm é ... outra coisanode_modules/.bin/jest args
fit
vez deit
.Tudo que você precisa fazer é cantar o encantamento mágico:
O autônomo
--
é * nix magic para marcar o final das opções, o que significa (para o NPM) que tudo depois disso é passado para o comando em execução, neste casojest
. Como um aparte, você pode exibir notas de uso de gracejo dizendoDe qualquer forma, cantando
executa os testes no arquivo nomeado (
FooBar.js
). Você deve observar, porém, que:O Jest trata o nome como distinção entre maiúsculas e minúsculas, portanto, se você estiver usando um sistema de arquivos que não diferencia maiúsculas de minúsculas, mas que preserva maiúsculas e minúsculas (como o Windows NTFS), pode encontrar o que parece ser uma coisa estranha acontecendo.
Jest parece tratar as especificações como um prefixo.
Portanto, o encantamento acima
FooBar.js
,Foo.js
eFooZilla.js
foo.js
fonte
npm ERR! Error: ENOENT, open '<path to project>/node_modules/<name of file>/package.json'
npm test ToDoForm.test.js
trabalhou enquantojest ToDoForm.test.js
nãoPara executar um teste individual:
-t
- depois de colocar um regex contendo o nome do teste.fonte
Usando
npm test
não significa que o gracejo seja instalado globalmente. Significa apenas que "teste" é mapeado para usar o jest no seu package.jsonA seguir, o que funcionou para mim, no nível raiz do projeto:
args pode ser o arquivo de teste que você deseja executar ou o diretório que contém vários arquivos.
fonte
node_modules/.bin
é usar onpx
comando Por exemplonpx jest [args]
se você usar,
yarn
poderá adicionar o arquivo.spec.js
ou.test.js
diretamente após:Esta é a parte da minha
package.json
instalação com jest como um pacote local (as partes relevantes foram removidas):fonte
Você pode usar o nome do arquivo com
npm test --
:fonte
Se você estiver executando
npm >= 5.2.0
e tiver instalado o gracejo localmente como umdevDependencies
com,npm i -d jest
poderá executar o gracejo em um arquivo específico, executandonpx jest /path/to/your/spec.js
fonte
Estamos usando o nrwl-nx com angular . Neste caso, podemos usar este comando:
notas:
npm test
executará o script de teste especificado empackage.json
:"test:client": "ng test client"
<ng-project>
é o nome de um projeto emangular.json
"defaultProject"
(especificado emangular.json
) será usado (portanto, você deve especificá-lo, quando o teste não estiver no seu projeto padrão)angular.json
navegar para"project"
-"<ng-project>"
-"architect"
-"test"
"builder"
que, no nosso caso, é:"@nrwl/jest:jest"
npm test server -- --help
para ver todas as opções disponíveis--testFile
é usada aquifonte
É assim que executo dinamicamente testes em um arquivo específico sem reiniciar o teste. Meu projeto de reação foi criado foi
create-react-app
então ele assiste ao teste de alterações, executando automaticamente o teste quando eu faço alterações.
Então é isso que vejo no final dos resultados do teste no terminal.
Pressione W
depois pressione P
isso foi depois que eu queria executar o arquivo 'index.es6.js' na pasta 'Login'
É assim que eu executo testes em um arquivo específico.
fonte
Também pode ser alcançado por
$ jest --findRelatedTests path/to/fileA.js
ref ( https://jestjs.io/docs/en/cli#running-from-the-command-line )
Como isso pode ser alcançado no Nx monorepo, aqui está a resposta
user@host:/path/to/workspace$ npx nx test api --findRelatedTests=apps/api/src/app/mytest.spec.ts
ref e mais informações ( https://github.com/satminav/nx-qa/issues/6 )
fonte
Acabei de instalar o gracejo como globalmente e depois corri
jest myFileToTest.spec.js
e funcionoufonte
Você tem duas opções:
Isso evita que você instale o Jest globalmente. Você usa o gracejo usado pelo seu projeto.
fonte
O Jest usará o que você passa como um padrão regex . Isso corresponde a.
Se você deseja executar um arquivo de teste específico. Então a melhor maneira de fazer isso é precisar o caminho completo para isso. (Você pode precisar muito de um determinado caminho relativo, como (src / XFolder / index.spec.ts)).
A maneira mais fácil de fornecer o caminho completo no diretório e no linux é:
Observe o uso da variável $ PWD .
Para Windows ! (ser atualizado)
fonte
Com Angular e Jest, você pode adicioná-lo ao package.json em "scripts"
Em seguida, para executar o teste de unidade para um arquivo específico, você pode escrever este comando no seu terminal
fonte
Não há necessidade de passar o caminho completo. Apenas use
regex
pattern
.https://jestjs.io/docs/en/cli.html#--testnamepatternregex
fonte