ce qui est le moins de résistance pour le débogage moka tests?
Modifier Nov 2016: Nœud a maintenant intégré dans le débogueur, vous pouvez commencer avec --inspect
. Cette réponse explique: https://stackoverflow.com/a/39901169/30946.
Je suis en train de construire un moka test en coffeescript. À droite en haut de l'essai que j'ai:
require "../assets/js/theObject.coffee"
debugger
ss = new TheObject()
J'aimerais arrêter de ce débogueur en ligne parce que l'objet en theObject.coffee
n'est pas en cours de chargement. Je suis l'aide d'un noeud-inspecteur et il fonctionne, sorta.
Le processus que j'ai, c'est:
- nœud de départ-inspecteur
- exécuter le test en ligne de commande avec
mocha --compilers coffee:coffee-script ./test/theObjectTests.coffee --ui bdd -d --debug-brk
- aller à la node-inspector, l'actualiser si il est déjà ouvert
- attendez que le fichier
theObject.coffee
à charger, puis placer un point d'arrêt sur la ligne correcte
Il doit y avoir un moyen plus facile. Il semble que je devrais être en mesure d'avoir un débogueur en cours d'exécution et l'avoir juste arrêter de ce débogueur en ligne, mais je ne suis pas en mesure de trouver.
J'ai WebStorm, qui a un débogueur (cet article traite de mise en place pour exécuter moka tests, mais ça ne m'aide pas), mais quand je le démarre, il échoue. La commande qui est exécutée dans le WebStorm fenêtre de débogage est:
"C:\Program Files\nodejs\node.exe" --debug-brk=64232 C:\Users\jcollum\AppData\Roaming\npm\_mocha
C:\Users\jcollum\AppData\Roaming\npm\_mocha:2
basedir=`dirname "$0"`
Je soupçonne que peut-être un windows problème spécifique.
Env: Windows 7, Webstorm, nœud 0.8.16, moka 1.7.4, git-bash
La question: si vous êtes à partir de zéro avec Moka, quelle est la meilleure façon d'obtenir un débogueur va cela va s'arrêter sur un débogueur en ligne facilement? Facile est le mot clé ici.
Edit: car demandant ce que j'ai cessé de l'utiliser Windows et je travaille sous Ubuntu. Mon moka processus de débogage (que j'utilise rarement) est le même.
- Voir ma réponse sur une question connexe de ce qui fonctionne pour moi: stackoverflow.com/a/29351654/3304034
Vous devez vous connecter pour publier un commentaire.
Édition, des années plus tard: le chemin le plus court dans le Nœud 6+ est:
mocha --debug-brk --inspect ./test.js
couplé avec le Nœud de l'Inspecteur Gestionnaire de plugin.Plusieurs semaines plus tard, pas de réponses. Voici le chemin le plus rapide que j'ai trouvé.
node-inspector
node-inspector
-- il va maintenant être à l'écoute sur 5858--debug-brk
debugger
sur elle. Parfois, il ne bougera pas le code du fichier de la fenêtre à la bonne place, de sorte que vous aurez à frapper la touche F10 pour l'obtenir à l'étape à la ligne suivante et de montrer où c'est dans le fichier.Ligne de commande:
node-inspector & mocha --compilers coffee:coffee-script/register ./test/appTests.coffee --ui bdd -d -g "should X then Y" --debug-brk
En plus de @jcollum la réponse ci-dessus, j'ai trouvé au lieu d'utiliser l'option --debug-brk drapeau, il est préférable d'utiliser l'option --debug avec -w (veille)
De cette façon, lorsque vous ajoutez et supprimez débogueur les lignes de votre code, moka recharger les tests automatiquement et votre noeud-inspecteur s'arrête sur la ligne appropriée.
Cela évite d'avoir à revoir le terminal constamment de redémarrer les essais, puis inutilement de cliquer sur "continuer" dans le débogueur de franchir la première ligne de la source.
Error: Injection failed: no require in current frame.
avec--debug
. Même essayé avec--no-preload
, mais encore faut appuyer sur Pause et Play.Avec les dernières versions de Moka et de node-inspector, cela a très bien fonctionné pour moi:
Il charge le local Moka exécutable en tant que le processus débogué, s'arrêtant sur la première ligne pour mettre en place vos points d'arrêt.
Heads-up sur http://s-a.github.io/iron-node/. C'est plus un logiciel efficace pour déboguer rien Node.js liés à.
$ iron-node ./node_modules/mocha/bin/_mocha
La voie alternative à l'aide de WebStorm nœud débogueur.
En bref:
Path to Node App JS File
Des instructions détaillées avec des captures d'écran par Glenn Bloc.
Si c'est un Nœud de l'application, puis à l'aide intégrée Nœud débogueur en ligne de commande est le chemin le plus rapide vers la célébrité:
Dans Webstorm maintenant, vous pouvez simplement mettre en place à l'aide d'un
mocha
de configuration. A fonctionné assez bien sortir de la boîte pour moi:et puis
Il vous montre également les paramètres, il fonctionne avec de sorte que vous pouvez probablement les copier dans un autre environnement, si vous avez besoin de.
En ce qui concerne soit Webstorm ou PhpStorm, vous pouvez ajouter un spécifique moka configuration debug:
Vous aurez à ajouter via le vert, vous pouvez lui donner un nom.
Si déjà installé moka dans le projet via:
ou
il va trouver la fonction de module dans votre projet.
J'ai dû fournir le chemin d'accès correct à mes tests unitaires, et de frapper la marque pour
Include subdirectories
/Depuis mon projet est un texte tapé à la machine que j'ai eu à ajouter:
Pour un pur js projet, il ne devrait pas être nécessaire.
Maintenant, vous pouvez exécuter le test complet costume, et vous pouvez alors choisir seul cas de test à partir de la liste et de les exécuter et déboguer sur leur propre.
Aucune des réponses mentionnent le chemin de moindre résistance: Lorsque vous avez besoin de déboguer Moka tests, vous pouvez simplement ajouter une autre d'affirmer que vérifie la valeur que vous souhaitez déboguer.
Je trouve que c'est souvent tout ce dont j'ai besoin. Et je viens de supprimer les assert(s) que j'ai utilisé pour le débogage quand je suis fait.
Un moyen moderne de faire cela est d'utiliser nodejs est l'inspecteur de l'intégration de la fonctionnalité. Il est assez simple à utiliser. J'ai déjà écrit une explication détaillée de la façon de l'utiliser dans ce post