在Visual Studio C#Express 2010中调试Nunit测试

我遵循这个建议来调试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专业,而不是表达,但我想这应该不重要)。

  • 按照Ninjapig的建议调出“例外”对话框。

  • 点击Add...按钮,打开“New Exception”对话框。

  • 在下拉框中选择“公共语言运行时例外”
  • 在编辑框中输入“NUnit.Framework.AssertionException”。
  • 点击OK关闭“New Exception”对话框。
  • 返回到“例外”对话框,确保两个复选框( ThrownUser-unhandled )均未选中。
  • 现在,调试器应该完全忽略NUnit断言失败(即抛出,被捕获或不存在, NUnit.Framework.AssertionException )。

    更新 :这只会阻止进入调试器,它不能忽略异常本身; 即它不会改变实际的程序流程。 Appart从改变或替换或封装try-catch块中的Assert-calls,我不认为有什么可以实现的(至少不会自动)。


    我不确定VS2010 Express是否有这个选项,但你可以选择例外来打破。

    转到“调试”菜单,然后选择“例外” 菜单选项

    从这里您可以选择要打破的例外情况 例外选择窗口


    我已经结束了引用nunit-gui-runner.dll并调用它

    NUnit.Gui.AppEntry.Main(new string[] { Dll });
    

    这带来了NUnit gui。 然后我可以运行我感兴趣的特定测试。

    链接地址: http://www.djcxy.com/p/54119.html

    上一篇: Debugging Nunit tests in Visual Studio C# Express 2010

    下一篇: Do the C++ operators new and new[] throw std::bad