Dot-Net
如何防止預期異常破壞調試測試執行?
在調試模式下執行 MSTEST 單元測試時,執行會在每個引發的預期異常中停止。我的測試看起來像這樣
[TestMethod()] [ExpectedException(typeof(ArgumentNullException))] public void ShouldThrowExceptionWhenPassingNull() { object data = null; target.CheckNull(data); }目標方法如下所示:
public void CheckNull(object data) { if (ReferenceEquals(null, data)) { throw new ArgumentNullException("data"); } } // test run breaks here: ArgumentNullException was unhandled by user code
您是否嘗試使用
ctrl-R ctrl-T而不是執行測試ctrl-R T?編輯如果不是鍵盤快捷鍵問題,請查看此連結。您可以按照那裡的說明嘗試以下操作:
- 為您在此處遇到的異常類型禁用“中斷使用者未處理的異常”(通過 Debug -> Exceptions)
- 對所有異常禁用“中斷使用者未處理異常”(通過調試->異常)
- 禁用“只是我的程式碼”
CTRL + RA 為我工作,無需更改任何選項。
我認為您遇到的問題是因為您正在從工具欄上的“開始調試”(F5)按鈕執行測試項目。如果您點擊綠色播放按鈕,您將在每個異常中停止,甚至是預期的異常。
要執行所有測試而不在每個異常中停止,請點擊:測試 -> 執行 -> 解決方案中的所有測試或使用快捷方式:CTRL + R, A
在打開測試結果視窗的情況下,CTRL + R、D 也可以使用。在測試結果視窗中,執行測試和調試測試之間的區別變得清晰。