2012-05-19 9 views
75

Estoy usando el javascript test-runner "Mocha".Prueba de javascript con Mocha: ¿cómo puedo usar console.log para depurar una prueba?

Tengo una prueba que está fallando, por lo que debo depurarla usando console.log.

Pero cuando se ejecutan las pruebas, no hay salida (solo los resultados de la prueba de Mocha). ¡Parece que Mocha ha capturado y suprimido mi salida console.log!

¿Cómo puedo obtener Mocha para mostrar mi salida? (en las pruebas que fallan)?

EDIT:

disculpas enorme! - console.log funciona durante las pruebas! Debo haber estado esperando que suprimiera la salida, y no verifiqué mi propio código correctamente. Gracias por responder. Entonces ... dicho eso ... ¿tal vez sería bueno suprimir la salida para las pruebas que pasan? hmm ...

En una nota relacionada: Quiero usar console.log porque estoy teniendo un montón de problemas intentando que el depurador Eclipse se conecte con node.js.

¿Soy el único que encuentra esto complicado? ¿Cómo depuran node.js? Con un depurador, o con console.log declaraciones?

+0

¡Un buen negocio! :) En este momento todavía estoy mucho nodo de 'depuración' a través de las pruebas moca. Veo un momento en el futuro cercano en el que podría evaluar algunas de las opciones aquí: http://stackoverflow.com/questions/1911015/how-to-debug-node-js-applications –

+0

Sugeriría que no use Eclipse para Node.js, realmente no es el mejor entorno para usar IMO. JetBrains 'WebStorm es un gran IDE de Node.js, aunque cuesta dinero. Si está buscando gratis, realmente me ha gustado el nuevo código de Visual Studio, que tiene una gran compatibilidad incorporada para la depuración de nodos y otras cosas que hacen agradable el desarrollo de Nodo. – dsw88

+0

@ dsw88 - Mi experiencia con WebStorm es que disminuyó la velocidad una vez que nuestra estructura de archivos comenzó a ser grande y profunda. Me recordó los viejos tiempos con las aplicaciones de Java. –

Respuesta

40

¿Qué opciones de Mocha estás usando?

¿Tal vez tiene algo que ver con el uso de reportero (-R) o ui (-ui)?

console.log(msg); 

funciona bien durante mis pruebas de funcionamiento, aunque a veces se mezcla en un poco tonto. Presumiblemente debido a la naturaleza asincrónica de la ejecución de prueba.

Estas son las opciones (mocha.opts) que estoy usando:

--require should 
-R spec 
--ui bdd 

Hmm..just probar sin ningún mocha.opts y console.log todavía funciona.

+3

mocha -R ¡La especificación funciona muy bien! gracias –

+2

donde hace log() realmente mucho? – PositiveGuy

29

Si está probando el código asíncrono, debe asegurarse de colocar done() en la devolución de llamada de ese código asíncrono. Tuve ese problema al probar las solicitudes http a una API REST.

12

También puede haber puesto su console.log después de una expectativa que falla y no se detecta, por lo que su línea de registro nunca se ejecuta.

+0

Sí, ese fue mi problema, gracias por sugerir esto. Moví los registros de la consola ANTES del .expect fallido, y ahora se muestran. – redfox05

Cuestiones relacionadas