J'ai du mal à faire fonctionner Mocha comme prévu, et j'aimerais le dire comme documenté, mais il (semble) qu'il n'y ait pas beaucoup de documentation sur le fonctionnement réel de la chose.
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, alors j'ai pensé que ce n'était pas dans mon PATH
, alors j'ai essayé de l'exécuter directement,
$ ./node_modules/mocha/bin/mocha
execvp(): No such file or directory
Enfin, j'ai essayé de frapper l'autre bin
fichier 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? Les vœux semblent vous laisser, mais j'ai entendu dire que Mocha est le meilleur choix, je n'arrive tout simplement pas à le faire fonctionner correctement.
Et des pensées sur l'erreur que j'ai obtenue ci-dessus lors de ma troisième tentative?
Éditer:
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
npm install mocha
, j'obtiens./node_modules/.bin/mocha
comme prévu.sudo npm install -g mocha
me reçoit/usr/local/bin/mocha
. Si cela ne fonctionne pas correctement dans votre environnement, cela peut être un bogue, ou simplement mocha non mis à jour pour prendre en charge le nœud 0.7. *. Concernant votre avertissement d'obsolescence,exists
etexistsSync
ont été déplacés depath
àfs
dans le nœud 0.7.1.Réponses:
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:
Remarque: les arguments optionnels sont transmis à la commande en cours d'exécution (mocha dans ce cas)
cela sélectionnera automatiquement la commande exécutable "mocha" de votre mocha installé localement (ajoutez-la toujours en tant que dépendance de développement pour vous assurer que la bonne est toujours utilisée par vous et tout le monde).
Attention cependant que si vous n'avez pas installé mocha, cette commande récupérera et utilisera automatiquement la dernière version, ce qui est excellent pour certains outils (comme les échafaudages 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 savoir plus sur npx ici
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 les tests de votre bibliothèque échouent en fonction de la configuration de la machine (mocha en tant que version globale, mocha globale, etc.), la façon d'utiliser le mocha local qui fonctionne sur plusieurs plates-formes est:
npm met des alias pour tous les binaires de vos dépendances sur ce dossier spécial. Enfin, npm ajoutera automatiquement node_modules / .bin au PATH lors de l'exécution d'un script npm, donc dans votre package.json, vous pouvez simplement faire:
et invoquez-le avec
la source
/node_modules/.bin/{module-binary-name}
c'est l'endroit où npm met des raccourcis vers les binaires dans vos dépendances, vous ne devriez pas référencer directement un fichier dans les sources d'une dépendance, car cela pourrait casser sur la prochaine version.Après une lecture plus approfondie et la confirmation de Linus G Thiel ci-dessus, j'ai découvert que je devais simplement,
./node_modules/.bin
à monPATH
la source
Pour les fenêtres :
puis exécutez la commande
la source
Lors de l'installation des modules de nœuds pour mocha, j'avais essayé les commandes ci-dessous
et en exécutant ou en exécutant le test moka que j'essayais
mais j'obtenais l'erreur ci-dessous comme:
'Mocha' n'est pas reconnu comme commande interne ou externe
Ainsi, après avoir tout essayé, il s'est avéré qu'il s'agissait simplement de définir le chemin des variables d'environnement sous les variables système comme suit:
C: \ Program Files \ nodejs \
et cela a fonctionné :)
la source