Prevent VS C# Unit Testing breaking on exceptions
我想编写一个单元测试来检测抛出的异常。 使用ExpectedExceptionAttribute,我从MSVS内部运行测试,当TestMethod遇到异常时,调试器会中断异常,但TestMethod会正确跳过并报告Passed。
是否有一面旗帜告诉VS在单元测试期间不要破坏?
不要在调试会话中运行测试。 您可以选择"运行选择"或"调试选择",选择第一个,您应该没问题。
-
@Jake在这种情况下使用ctrl + F5,这与运行选择相同(非调试)
-
是的,我意识到我的CTRL无效! 所以我删除了我以前的评论。 看完答案后,我找到了"测试"菜单,所以我觉得我必须从那里跑。 谢谢。
如果按CTRL + ALT + E,则可以配置在抛出和/或不处理不同类型的异常时调试器是否会中断。
我发现使用这些设置有时非常方便。
-
该对话框上有许多选项(复选框)(Debug:Exceptions)。 我发现我只需要取消选中Common Language Runtime Exceptions(line)Thrown(列)框。 我同意另一种选择是在没有调试器的情况下运行,但有时你确实想要出于某种原因运行调试器。 因此,当您需要使用调试器并且不想在第一次机会异常时中断时,这是一个很好的选择。
作为MS单元特定[ExpectedException]的替代方法,如果需要调试单元测试,可以显式尝试/捕获异常并断言异常类型,例如在此处完成:如何使用Assert验证是否存在异常 异常被抛出?