[英]How to prevent expected exceptions from breaking the debug test run?
在調試模式下運行 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也可以。 在測試結果窗口中,運行測試和調試測試之間的區別變得清晰。
@ dcp的建議看起來適用於MSTEST,但您可能需要考慮獲取TestDriven.Net 。 我幾乎只使用它作為測試運行器,並且使用右鍵單擊“在調試中運行測試”模式時沒有出現此問題。 此外,我發現它幾乎在所有情況下都比內置測試跑步者更方便。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.