防止 VS C# 单元测试因异常而中断
Posted
技术标签:
【中文标题】防止 VS C# 单元测试因异常而中断【英文标题】:Prevent VS C# Unit Testing breaking on exceptions 【发布时间】:2012-08-21 13:59:45 【问题描述】:我想编写一个单元测试来检测抛出的异常。使用ExpectedExceptionAttribute
,我从 MSVS 内部运行测试,当 TestMethod 遇到异常时,调试器中断异常,但 TestMethod 正确跳过并报告 Passed。
是否有一个标志告诉 VS 在单元测试期间不要中断?
【问题讨论】:
【参考方案1】:不要在调试会话中运行测试。您可以选择“运行选择”或“调试选择”,选择第一个就可以了。
【讨论】:
@Jake 在这个场景中使用 ctrl + F5,和运行选择(非调试)一样 是的,我意识到我的 CTRL 不起作用!所以我删除了我之前的评论。阅读您的答案后,我找到了“测试”菜单,所以我认为我必须从那里运行。谢谢。【参考方案2】:如果您按CTRL + ALT + E
,您可以配置调试器是否会在抛出和/或不处理不同类型的异常时中断。
我发现有时使用这些设置非常方便。
【讨论】:
该对话框(调试:异常)上有很多选项(复选框)。我发现我只需要取消选中 Common Language Runtime Exceptions (line) Thrown (column) 框。我同意另一种选择是在没有调试器的情况下运行,但有时您出于某种原因确实想使用调试器运行。因此,当您需要使用调试器并且不想在第一次出现异常时中断时,这是一个不错的选择。【参考方案3】:作为 MS 单元特定 [ExpectedException]
的替代方案,如果您需要调试单元测试,您可以显式尝试/捕获异常并断言异常类型,例如在此处完成:How do I use Assert to verify that an exception has been thrown?
【讨论】:
以上是关于防止 VS C# 单元测试因异常而中断的主要内容,如果未能解决你的问题,请参考以下文章