2011-03-05 196 views
29

我想單元測試使用自定義事件的用戶組件。當不使用VS單元測試框架debug.assert成功時,在VS單元測試框架做同樣的事情時,assert失敗,這是不合邏輯的,所以我想在使用VS框架進行單元測試時進行調試。但似乎我不能,因爲代碼不會在我設置的調試點暫停。運行VS單元測試時可以進行調試嗎?

那麼有沒有辦法強制它在調試點暫停呢?

更新:我的意思不是在測試項目本身,而是在運行測試項目的目標項目。

回答

31

P. Campbell的答案並不完全正確。如果您開始調試項目(如WCF服務站點),則無法啓動任何單元測試或調試模式。這樣做的選項在Visual Studio 2012中只是變灰。

這意味着您無法從單元測試中調試進程外代碼。您只能調試由單元測試直接調用的代碼。

這是他們現在需要修復的VS2012中的一個主要問題。

+0

我希望我可以upvote你的答案二十多次 – Eric 2014-07-23 17:14:33

+1

Visual Studio 2013更新3仍然有這個錯誤。 – 2014-11-18 21:43:35

+1

Visual Studio 2013更新4 - 同樣的問題 – AlphaOmega 2015-01-22 16:33:23

57

,使用Visual Studio Test項目,您可以設置斷點並逐步執行代碼。

一定要運行您的測試與調試菜單 - 測試 - >調試 - >在當前上下文中的測試。 對於任何給定的測試類別或測試方法,請使用鍵盤快捷鍵Ctrl-RCtrl-T。當您的光標位於方法(,測試方法或測試覆蓋的代碼)時,它將在該方法的任何斷點或代碼執行路徑中任何位置的任何斷點處斷開。如果你的光標在類上,或者在測試方法之間,它會運行類中的所有測試。如上所述,斷點將在這裏命中。

+0

我忘了我的意思不是在測試項目,而是在焦油geted Project – user310291 2011-03-05 00:38:45

+0

@user:是的,無論是在測試方法中,還是在下游測試代碼中,都會觸發任何斷點。 – 2011-03-05 00:40:56

+0

只是添加到@user的評論,如果你調試單元測試,你將能夠停止和調試任何代碼,測試或測試代碼AS LONG,因爲你有測試代碼源或調試器信息,所以你wouldnt能夠跳進沒有符號文件的引用dll – 2011-03-05 05:32:06

3

在VS2015中,選擇:

測試 - >調試 - >所有測試

或者你可以突出顯示在編輯器中特定的測試,並選擇

測試 - >調試 - >選擇測試

相關問題