115 votes

Comment installer et lancer Mocha, le module de test de Node.js ? Obtention de "mocha : command not found" après l'installation

J'ai des difficultés à obtenir Moka fonctionne comme prévu, et j'aimerais dire comme documenté, mais il (semble) qu'il n'y ait pas beaucoup de documentation sur la façon de faire fonctionner l'appareil.

Je l'ai installé en utilisant npm (à la fois globalement et localement), et à chaque fois que je l'exécute, j'obtiens :

$ mocha
mocha: command not found

Ok, donc je me suis dit que ce n'était pas dans mon PATH J'ai donc essayé de l'exécuter directement,

$ ./node_modules/mocha/bin/mocha 
execvp(): No such file or directory

Finalement, j'ai essayé de frapper l'autre bin et a obtenu,

$ ./node_modules/mocha/bin/_mocha 
path.existsSync is deprecated. It is now called `fs.existsSync`.

  .

   1 tests complete (1ms)

Comment puis-je exécuter mes tests à l'aide d'une seule commande ? Vœux semble vous laisser faire, mais j'ai entendu dire que Mocha était le meilleur choix, mais je n'arrive pas à le faire fonctionner correctement.

Et qu'en est-il de l'erreur que j'ai obtenue lors de ma troisième tentative ?

Edita:

Je cours,

  • Ubuntu 11.10 64-bit
  • Node.js 0.7.5
  • npm 1.1.8
  • mocha 0.14.1
  • devrait être 0.6.0

209voto

Benja Points 667

Depuis npm 5.2.0, il y a une nouvelle commande "npx" incluse avec npm qui rend cela beaucoup plus simple, si vous exécutez :

npx mocha <args>

Note : les arguments optionnels sont transmis à la commande en cours d'exécution (mocha dans ce cas).

cela choisira automatiquement la commande exécutable "mocha" à partir de votre mocha installé localement (ajoutez toujours cette commande en tant que dépendance de développement pour vous assurer que la bonne commande est toujours utilisée par vous et par tous les autres).

Attention cependant, si vous n'avez pas installé mocha, cette commande va automatiquement chercher et utiliser la dernière version, ce qui est très bien pour certains outils (comme les scaffolders par exemple), mais n'est peut-être pas le plus recommandable pour certaines dépendances où vous pourriez vouloir vous rattacher à une version spécifique.

Pour en savoir plus, consultez le site npx aquí


Maintenant, si au lieu d'invoquer mocha directement, vous voulez définir un script npm personnalisé, un alias qui pourrait invoquer d'autres binaires npm...

vous ne voulez pas que les tests de votre bibliothèque échouent en fonction de la configuration de la machine (mocha global, version globale de mocha, etc), la façon d'utiliser le mocha local qui fonctionne sur toutes les plates-formes est la suivante :

node node_modules/.bin/mocha

npm place les alias de tous les binaires de vos dépendances dans ce dossier spécial. Enfin, npm ajoutera node_modules/.bin au PATH automatiquement lors de l'exécution d'un npm script, donc dans votre package.json vous pouvez faire juste :

"scripts": {
  "test": "mocha"
}

et l'invoquer avec

npm test

18voto

Stephen Melrose Points 1901

Après d'autres lectures et la confirmation de Linus G Thiel ci-dessus, je me suis rendu compte que je devais tout simplement le faire,

  • Passage à Node.js 0.6.12
  • Et l'un ou l'autre,
    • Installer Mocha en tant que global
    • Añadir ./node_modules/.bin à mon PATH

7voto

Qui-Gon Jinn Points 325

Exécuter Moka con mocha à partir de votre terminal, vous devez installer mocha globalement sur this machine :

npm install --global mocha

Dans ce cas cd à votre projectFolder/test et exécuter mocha yourTestFileName.js


Si vous voulez faire mocha disponible à l'intérieur de votre package.json en tant que dépendance de développement :

npm install --save-dev mocha

Ajouter ensuite mocha à vos scripts à l'intérieur de package.json .

"scripts": {
    "test": "mocha"
  },

Exécutez ensuite npm test à l'intérieur de votre terminal.

3voto

DHEERAJ Points 433

Lors de l'installation des modules node pour mocha, j'ai essayé les commandes suivantes

  • npm install
  • npm install mocha
  • npm install --save-dev mocha
  • npm install mocha -g # pour l'installer globalement aussi

et lors de l'exécution du test mocha que j'essayais de réaliser

  • test du moka
  • npm run test
  • moka test test \index.test.js
  • npm test

mais j'ai obtenu l'erreur suivante :

Mocha" n'est pas reconnu comme une commande interne ou externe.

Après avoir tout essayé, il s'est avéré qu'il suffisait de définir le chemin d'accès aux variables d'environnement dans les Variables système comme suit :

C:\Program Dossiers \nodejs\

et cela a fonctionné :)

1voto

Ashutosh Jha Points 3560

Pour Windows :

Package.json

  "scripts": {
    "start": "nodemon app.js",
    "test": "mocha"
  },

puis exécutez la commande

npm run test

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X