Dot-Net

如何防止預期異常破壞調試測試執行?

  • June 21, 2016

在調試模式下執行 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

編輯如果不是鍵盤快捷鍵問題,請查看連結。您可以按照那裡的說明嘗試以下操作:

  1. 為您在此處遇到的異常類型禁用“中斷使用者未處理的異常”(通過 Debug -> Exceptions)
  2. 對所有異常禁用“中斷使用者未處理異常”(通過調試->異常)
  3. 禁用“只是我的程式碼”

CTRL + RA 為我工作,無需更改任何選項。

我認為您遇到的問題是因為您正在從工具欄上的“開始調試”(F5)按鈕執行測試項目。如果您點擊綠色播放按鈕,您將在每個異常中停止,甚至是預期的異常。

要執行所有測試而不在每個異常中停止,請點擊:測試 -> 執行 -> 解決方案中的所有測試或使用快捷方式:CTRL + R, A

在打開測試結果視窗的情況下,CTRL + R、D 也可以使用。在測試結果視窗中,執行測試和調試測試之間的區別變得清晰。

引用自:https://stackoverflow.com/questions/3362239