web-dev-qa-db-fra.com

Comment installer et exécuter Mocha, le module de test Node.js? Obtenir "mocha: commande introuvable" après l'installation

J'ai de la difficulté à obtenir Mocha de fonctionner comme prévu, et j'aimerais dire comme documenté, mais il semble (semble) ne pas avoir beaucoup de documentation sur la mise en marche effective de la chose.

Je l'ai installé en utilisant npm (globalement et localement), et chaque fois que je l'exécute, je reçois:

$ mocha
mocha: command not found

Ok, alors j’ai pensé que ce n’était pas dans mon PATH, alors j’ai essayé de le lancer directement,

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

Enfin, j'ai essayé de frapper l'autre fichier bin, et j'ai obtenu

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

  .

  ✔ 1 tests complete (1ms)

Comment puis-je simplement exécuter mes tests avec une seule commande? voeux semble vous le permettre, mais j'ai entendu dire que Mocha était le meilleur choix, je n'arrive pas à le faire fonctionner correctement.

Et des réflexions sur l'erreur que j'ai eu dessus lors de ma troisième tentative?

Modifier:

Je suis entrain de courir,

  • Ubuntu 11.10 64 bits
  • Node.js 0.7.5
  • npm 1.1.8
  • moka 0.14.1
  • devrait 0.6.0
80
Stephen Melrose

depuis npm 5.2.0, une nouvelle commande "npx" incluse dans npm rend cela beaucoup plus simple si vous exécutez:

npx mocha <args>

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

cela sélectionnera automatiquement la commande "mocha" exécutable dans votre mocha installé localement (ajoutez-le toujours comme dépendance de dev pour vous assurer que la bonne est toujours utilisée par vous et par tout le monde).

Attention cependant, si vous n'avez pas installé mocha, cette commande récupérera et utilisera automatiquement la dernière version, ce qui est très bien pour certains outils (comme les échafaudeurs par exemple), mais peut ne pas être la plus recommandée pour certaines dépendances où vous voudrez peut-être épingler à une version spécifique.

Vous pouvez en lire plus sur npx here


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

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

node node_modules/.bin/mocha

npm place des alias sur tous les fichiers binaires de vos dépendances sur ce dossier spécial. Enfin, npm ajoutera automatiquement node_modules/.bin à la variable PATH lors de l'exécution d'un script npm. Dans votre package.json, vous pouvez simplement:

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

et l'invoquer avec

npm test
166
Benja

Après plus de lectures et la confirmation de Linus G Thiel ci-dessus, j'ai découvert que je devais simplement le faire,

  • Passer à Node.js 0.6.12
  • Et soit,
    • Installer Mocha en tant que global
    • Ajouter ./node_modules/.bin à mon PATH
18
Stephen Melrose

Pour les fenêtres :

Package.json

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

puis lancez la commande

npm run test
0
Ashutosh Jha