2012-01-09 29 views
5

我使用node.js和茉莉節點npm模塊來運行測試。除非代碼產生錯誤,否則這可以很好地工作。我沒有堆棧跟蹤。例如,我的測試只有一個輸出這樣的:沒有堆棧跟蹤茉莉節點錯誤

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

沒有堆棧跟蹤。這使得我發現這些錯誤非常耗時,我正在尋找茉莉花節點的替代品。

如何讓茉莉花節點輸出帶有錯誤的完整堆棧跟蹤? --verbose命令行標誌不會這樣做。

+0

如果你可以發佈一個與實現副本一起破解的測試代碼片段,它可能會很有用。 – 2012-01-10 06:09:59

+0

問題是,有太多的代碼我不知道要發佈什麼代碼片段,因爲沒有堆棧跟蹤。 – Jake 2012-01-12 22:32:06

+0

如果你的代碼是TDD風格,那麼對於任何重要的代碼體系都應該有一個健康的測試數量。鑑於此,您可以一次註釋測試,直到您清除有問題的代碼/測試 – 2012-01-13 17:47:54

回答

4

雖然我沒有使用jasmine-node npm,但我遇到過這種錯誤。根據我的經驗,當測試/ impl範圍外的異步循環失敗時,會報告那些類型的錯誤...

我們已經做了什麼來捕捉所有這種異常,在執行前添加此代碼

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

您可以使用jasmine-node的--captureExceptions選項來輸出全局異常的堆棧跟蹤。

+1

我發現這不起作用。我通常使用磁帶,茉莉花比較混亂。即使Node內置的斷言在整體上做得更好。 – Jehan 2015-03-23 20:25:21

+0

這個幫助我。謝謝! :) – rahmat 2015-07-19 14:56:32