Estou tendo problemas para fazer com que o Mocha funcione conforme o esperado e adoraria dizer que está documentado, mas (parece) não haver muita documentação sobre como fazê-lo funcionar.
Eu instalei usando npm
(global e localmente), e cada vez que eu o executo, recebo:
$ mocha
mocha: command not found
Ok, percebi que não está no meu PATH
, então tentei executá-lo diretamente,
$ ./node_modules/mocha/bin/mocha
execvp(): No such file or directory
Por fim, tentei acessar o outro bin
arquivo e consegui,
$ ./node_modules/mocha/bin/_mocha
path.existsSync is deprecated. It is now called `fs.existsSync`.
.
✔ 1 tests complete (1ms)
Como posso apenas executar meus testes com um único comando? Parece que os votos permitem, mas ouvi dizer que Mocha é a melhor escolha, mas não consigo fazer com que funcione corretamente.
E alguma opinião sobre o erro que obtive acima na minha terceira tentativa?
Editar:
Estou correndo,
- Ubuntu 11.10 64 bits
- Node.js 0.7.5
- npm 1.1.8
- mocha 0.14.1
- deveria 0,6.0
npm install mocha
, obtenho./node_modules/.bin/mocha
o esperado.sudo npm install -g mocha
me pega/usr/local/bin/mocha
. Se isso não funcionar corretamente em seu ambiente, pode ser um bug ou apenas mocha não atualizado para suportar o nó 0.7. *. Quanto à sua advertência depreciação,exists
eexistsSync
foram movidos depath
parafs
no nó 0.7.1.Respostas:
desde o npm 5.2.0, há um novo comando "npx" incluído no npm que torna isso muito mais simples, se você executar:
Nota: os argumentos opcionais são encaminhados para o comando que está sendo executado (mocha neste caso)
isso irá escolher automaticamente o comando executável "mocha" do seu mocha instalado localmente (sempre adicione-o como uma dependência dev para garantir que o correto seja sempre usado por você e todos os outros).
Tenha cuidado, porém, que se você não instalou o mocha, este comando irá buscar e usar automaticamente a versão mais recente, o que é ótimo para algumas ferramentas (como scaffolders, por exemplo), mas pode não ser o mais recomendável para certas dependências onde você pode querer fixar em uma versão específica.
Você pode ler mais sobre npx aqui
Agora, se em vez de invocar o mocha diretamente, você deseja definir um script npm personalizado, um alias que pode invocar outros binários npm ...
você não quer que seus testes de biblioteca falhem dependendo da configuração da máquina (mocha como global, versão global do mocha, etc), a maneira de usar o mocha local que funciona em várias plataformas é:
O npm coloca aliases para todos os binários em suas dependências nessa pasta especial. Por fim, o npm adicionará node_modules / .bin ao PATH automaticamente ao executar um script npm, portanto, em seu package.json, você pode fazer apenas:
e invocá-lo com
fonte
/node_modules/.bin/{module-binary-name}
é o lugar onde o npm coloca atalhos para binários em suas dependências, você não deve referenciar diretamente um arquivo nas fontes de uma dependência, pois isso pode falhar na próxima versão.Após leitura adicional e confirmação de Linus G Thiel acima, descobri que simplesmente precisava,
./node_modules/.bin
ao meuPATH
fonte
Para Windows :
então execute o comando
fonte
Ao instalar os módulos de nó para mocha, tentei os comandos abaixo
e ao rodar ou executar o teste mocha que estava tentando
mas eu estava recebendo o erro abaixo como:
'Mocha' não é reconhecido como comando interno ou externo
Então, depois de tentar de tudo, acabou-se por definir o caminho para as variáveis de ambiente nas Variáveis do Sistema como:
C: \ Arquivos de programas \ nodejs \
e funcionou :)
fonte