2010-06-29 38 views
2

希望對你有好的n簡單的一個VS2010單元測試 - 拋出的例外是空的

在VS2010的測試框架中運行一些測試。 當其中某處出現異常時,結果屏幕不會顯示任何細節。

最簡單的例子:

[TestMethod] 
public void DoTest() 
{ 
    int y = 10 - 10; 
    int x = 10/y; 
} 
MyProj.DoTest拋出異常

測試方法: ...

你不能看到它在這裏,但在此之前的 '...' 有某種特殊隱藏字符(顯示爲正方形)。 如何查看詳細信息,最好是堆棧跟蹤。

+0

我不知道答案,但在此期間,你應該能夠看到例外調試器。 – 2010-06-29 15:11:17

+0

測試失敗並在引發異常後立即退出。所以如果沒有將它包裝在try/catch中並檢查捕獲到的異常,就無法看到它。 在這種情況下罰款,但不是當我不知道異常來自何處時。 – 2010-06-29 15:23:39

回答

0

我會使用調試器跟蹤測試代碼,直到找到引發異常的行。這將幫助你縮小範圍。

+0

這就是我現在正在做的。 沒有其他辦法嗎?在MS方面似乎很差。 NUnit總是會給你一個完整的堆棧跟蹤失敗的測試。 現在,即使當我找到這條線時,我也不明白它爲什麼會失敗,我必須編輯代碼以在失敗的線上放置一個try/catch,以便能夠看到導致它失敗的任何事情。 – 2010-06-29 19:39:40

2

實際上,您不必添加try/catch塊。如果你只需點擊,而不是運行調試:

alt text http://i50.tinypic.com/212a0ko.jpg

它會自動斷開那裏,告訴你的異常類型: alt text http://i46.tinypic.com/16m3puh.jpg

您還必須確保進入調試 - >例外( Ctrl + Alt + E),然後轉到公共語言運行時異常 - >系統 - > ystem.DivideByZero異常是引發或User-andled。如果沒有選中,那麼在調試時不會顯示任何內容,並且您將獲得所描述的內容。當然,對於所有的例外情況都是如此。

-1

您在測試結果窗口或右鍵單擊失敗的測試只需雙擊>查看測試結果詳細