2012-01-09 16 views
5

Sto usando node.js e il modulo npm jasmine-node per eseguire i test. Funziona perfettamente tranne se il codice produce un errore. Non ottengo stacktrace. Ad esempio, uno dei miei test emette solo questo:nessuna traccia dello stack per errori del nodo gelsomino

Error: TypeError: Cannot read property 'length' of undefined

Nessuna traccia dello stack. Questo rende la ricerca di questi errori così dispendiosa in termini di tempo che sto cercando alternative al nodo jasmine.

Come è possibile ottenere il nodo jasmine per l'output della traccia stack completa con l'errore? Il flag della riga di comando --verbose non lo fa.

+0

Probabilmente sarebbe utile se si potesse pubblicare un pezzo di esempio del codice di prova che si rompe con una copia dell'implementazione. –

+0

Il problema è che c'è così tanto codice che non so quale frammento di posta pubblicare, perché non c'è traccia di stack. – Jake

+0

Se il tuo codice è in stile TDD, dovrebbe esserci un numero sano di test per qualsiasi corpo significativo di codice. Detto questo, puoi commentare un test alla volta fino a quando non scarichi il codice/test problematico –

risposta

4

Anche se non ho usato il nodo nasino al gelsomino, mi sono imbattuto in questo tipo di errore. Nella mia esperienza, questi tipi di errori vengono segnalati quando un ciclo asincrono fuori dall'ambito del test/impl fallisce ...

Quello che abbiamo fatto per catturare tutte le eccezioni di quel tipo è aggiungere questo codice prima dell'esecuzione

process.on('uncaughtException',function(e) { 
    sys.log("Caught unhandled exception: " + e); 
    sys.log(" ---> : " + e.stack); 
}); 
7

È possibile utilizzare l'opzione --captureExceptions del nodo jasmine per emettere la traccia di stack delle eccezioni globali.

+1

Ho scoperto che questo non funziona. Di solito uso il nastro e Jasmine è un disastro a confronto. Anche gli affermati suggerimenti di Node fanno un lavoro migliore nel complesso. – Jehan

+0

questo mi aiuta. Grazie! :) – rahmat

Problemi correlati