[英]Debugging Nunit tests in Visual Studio C# Express 2010
我已經按照這個建議來調試NUnit測試。
http://www.blackwasp.co.uk/NUnitCSharpExpress.aspx
但是,我有幾個測試做Assert.Throws<...>
,這導致調試器在我正在測試的異常發生時中斷,當我真的希望它在這些調用之外發生異常時中斷。
如何讓調試器忽略這些方法中引起的異常?
編輯:我的事件嘗試了下面,這是行不通的!
[Test]
public void InstanciatingWithNullParameterThrowsException()
{
try
{
Assert.Throws<ArgumentNullException>(() => new CachedStreamingEnumerable<int>(null));
// This still throws and stops be being able to debug tests called after this one
}
catch
{
}
}
這對我有用(雖然在Visual Studio Professional中,不是Express,但我想這應該不重要)。
按照Ninjapig的建議提出“例外”對話框。
單擊Add...
按鈕,打開“New Exception”對話框。
OK
”關閉“新例外”對話框。 Thrown
和 User-unhandled
)。 現在,調試器應該完全忽略NUnit斷言失敗(即拋出,捕獲或未捕獲, NUnit.Framework.AssertionException
)。
更新 :這只會阻止進入調試器,它不能忽略異常本身; 即它不會改變實際的程序流程。 在更改或替換或封裝try-catch塊中的Assert-calls時,我認為沒有任何東西可以實現(至少不會自動)。
我不確定VS2010 Express是否有此選項,但您可以選擇中斷例外。
轉到“調試”菜單,然后選擇“例外”
從這里你可以選擇要打破的例外情況
我最終引用了nunit-gui-runner.dll
並調用它
NUnit.Gui.AppEntry.Main(new string[] { Dll });
這帶來了NUnit gui。 然后我可以運行我感興趣的特定測試。
我有同樣的問題。 雖然您的原始方法(不需要try...catch
塊)適用於大多數異常類型,但ArgumentNullException
不起作用。 我這樣修好了:
[Test]
public void InstanciatingWithNullParameterThrowsException()
{
bool isArgumentNullExceptionThrown = false;
try
{
new CachedStreamingEnumerable<int>(null);
}
catch (ArgumentNullException)
{
isArgumentNullExceptionThrown = true;
}
Assert.That(isArgumentNullExceptionThrown);
}
它並不優雅,但似乎確實有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.