web-dev-qa-db-fra.com

Test de javascript avec Mocha - comment puis-je utiliser console.log pour déboguer un test?

J'utilise le coureur de test javascript "Mocha".

J'ai un test qui échoue, je voudrais donc le déboguer en utilisant console.log.

Mais lors de l'exécution des tests, il n'y a pas de sortie (uniquement les résultats des tests de Mocha). Il semble que Mocha ait capturé et supprimé mon console.log sortie!

Comment puis-je obtenir Mocha pour montrer ma sortie? (at pour les tests qui échouent)?

EDIT:

Des excuses énormes! - console.log fonctionne pendant les tests! Je devais m'attendre à ce qu'il supprime la sortie et je n'ai pas vérifié correctement mon propre code. Merci d'avoir répondu. Donc ... cela étant dit ... peut-être serait-il bien de supprimer les résultats des tests? hmm ...

Sur une note connexe: je veux 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 difficile? Comment vous déboguez-vous sur node.js? Avec un débogueur ou avec console.log déclarations?

98
Nick Perkins

Quelles options de moka utilisez-vous?

Peut-être que cela a quelque chose à voir avec journaliste (-R) ou ui (-ui) utilisé?

console.log(msg);

fonctionne bien lors de mes essais, bien que parfois mélangé dans un peu maladroit. Probablement en raison de la nature asynchrone du test.

Voici les options (mocha.opts) que j'utilise:

--require should
-R spec
--ui bdd

Hmm..juste testé sans moka.opts et console.log fonctionne encore.

48
Zach Bonham

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 demandes http à une API REST.

32
Kevin C.

Vous avez peut-être aussi mis votre console.log après une attente qui échoue et qui n’est pas capturée, votre ligne de journal n’est donc jamais exécutée.

18
qix