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,
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
Après plus de lectures et la confirmation de Linus G Thiel ci-dessus, j'ai découvert que je devais simplement le faire,
./node_modules/.bin
à mon PATH
Pour les fenêtres :
Package.json
"scripts": {
"start": "nodemon app.js",
"test": "mocha"
},
puis lancez la commande
npm run test