2012-05-19 16 views
75

Sto usando il javascript test-runner "Mocha".Test di javascript con Mocha: come posso utilizzare console.log per eseguire il debug di un test?

Ho un test che sta fallendo, quindi vorrei eseguire il debug usando console.log.

Ma quando vengono eseguiti i test, non viene prodotto alcun output (solo i risultati del test da Mocha). Sembra che Mocha abbia catturato e soppresso il mio output console.log!

Come posso ottenere Mocha per mostrare la mia uscita? (per test che falliscono)?

EDIT:

scuse enormi! - console.log funziona durante i test! Dovevo aspettarmi che sopprimesse l'output e non ho controllato correttamente il mio codice. Grazie per la risposta. Quindi ... detto questo ... forse sarebbe bello sopprimere l'output per i test che passano? hmm ...

Su una nota correlata: voglio usare console.log perché sto avendo un sacco di problemi nel tentativo di ottenere il debugger di Eclipse per connettersi a node.js.

Sono l'unico che trova questo difficile? Come si fa a eseguire il debug di node.js? Con un debugger o con le frasi console.log?

+0

Buon affare! :) In questo momento sto ancora molto "debuggando" il nodo tramite i test Moca. Vedo un tempo nel prossimo futuro quando potrei voler valutare alcune delle opzioni qui: http://stackoverflow.com/questions/1911015/how-to-debug-node-js-applications –

+0

Ti suggerirei di non utilizzare Eclipse per Node.js, in realtà non è l'ambiente migliore per utilizzare IMO. La WebStorm di JetBrains è un ottimo IDE Node.js, anche se costa denaro. Se cerchi gratis, mi è piaciuto molto il nuovo codice di Visual Studio, che ha un grande supporto integrato per il debug dei nodi e altre cose che rendono piacevole lo sviluppo del Nodo. – dsw88

+0

@ dsw88 - La mia esperienza con WebStorm è che ha rallentato notevolmente una volta che la struttura dei file ha iniziato a diventare grande e profonda. Mi ha ricordato i vecchi tempi con le app Java. –

risposta

40

Quali opzioni di Mocha stai usando?

Forse si tratta di un reporter (-R) o ui (-ui) utilizzato?

console.log(msg); 

funziona correttamente durante i miei test, anche se a volte mescolato in un po 'sciocco. Presumibilmente a causa della natura asincrona della corsa di prova.

Ecco le opzioni (mocha.opts) sto usando:

--require should 
-R spec 
--ui bdd 

Hmm..just testato senza mocha.opts e console.log funziona ancora.

+3

mocha -R spec funziona alla grande! grazie –

+2

dove log() effettivamente lotto TO? – PositiveGuy

29

Se si esegue il test del codice asincrono, è necessario assicurarsi di inserire nella richiamata di quel codice asincrono. Ho riscontrato questo problema durante il test delle richieste HTTP a un'API REST.

12

Potrebbe anche essere stato inserito il console.log dopo un'aspettativa che non riesce ed è annullato, quindi la riga di registro non viene mai eseguita.

+0

Sì, quello era il mio problema, grazie per averlo suggerito. Ho spostato i log della console su PRIMA del .expect in errore, e ora lo mostrano. – redfox05

Problemi correlati