J'utilise le javascript test-runner "Mocha".
J'ai un test qui échoue, donc je voudrais le déboguer en utilisant console.log
.
Mais lorsque les tests sont exécutés, il n'y a pas de sortie (uniquement les résultats des tests de Mocha). Il semble que Mocha a capturé et supprimé ma console.log
sortie!
Comment puis-je demander à Mocha d'afficher ma sortie? (à pour les tests qui échouent)?
ÉDITER:
D'énormes excuses! - console.log
fonctionne pendant les tests! Je devais m'attendre à ce qu'il supprime la sortie, et je n'ai pas correctement vérifié mon propre code. Merci d'avoir répondu. Donc ... cela étant dit ... ce serait peut-être bien de supprimer la sortie des tests qui réussissent? hmm ...
Sur une note connexe: je souhaite utiliser console.log
parce que j'ai beaucoup de mal à essayer de connecter le débogueur Eclipse à node.js.
Suis-je le seul à trouver cela délicat? Comment déboguez-vous node.js? Avec un débogueur ou avec des console.log
déclarations?
la source
Réponses:
Quelles options de moka utilisez-vous?
Peut-être que c'est quelque chose à voir avec l'utilisation de reporter (-R) ou ui (-ui)?
fonctionne bien pendant mes tests, bien que parfois mélangé à un peu maladroit. Probablement en raison de la nature asynchrone du test.
Voici les options (mocha.opts) que j'utilise:
Hmm..juste testé sans aucun moka.opts et
console.log
fonctionne toujours.la source
Si vous testez du code asynchrone, vous devez vous assurer de placer
done()
dans le rappel de ce code asynchrone. J'ai eu ce problème lors du test des requêtes http vers une API REST.la source
Vous avez peut-être également mis votre
console.log
après une attente qui échoue et n'est pas interceptée, de sorte que votre ligne de journal n'est jamais exécutée.la source
Utilisez la bibliothèque de débogage .
Utilise le:
puis exécutez:
Et c'est tout!
la source