我遵循了这个建议来调试 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”对话框。- 在下拉框中选择“Common Language Runtime Exceptions”
- 在“编辑”框中输入“NUnit.Framework.AssertionException”。
- 单击
确定
关闭“新建异常”对话框。 - 返回“异常”对话框,确保两个复选框(
Thrown
和User-unhandled
)都未选中.
现在,调试器应该完全忽略 NUnit 断言失败(即抛出、捕获或未捕获,NUnit.Framework.AssertionException
)。
UPDATE:这只会阻止进入调试器,它不能忽略异常本身;即它不会改变实际的程序流程。除了在 try-catch block 中更改、替换或封装断言调用之外,我认为没有任何东西可以实现这一点(至少不是自动实现的)。
关于c# - 在 Visual Studio C# Express 2010 中调试 Nunit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6943719/