【问题标题】:Prevent VS C# Unit Testing breaking on exceptions防止 VS C# 单元测试因异常而中断
【发布时间】:2012-08-21 13:59:45
【问题描述】:

我想编写一个单元测试来检测抛出的异常。使用ExpectedExceptionAttribute,我从 MSVS 内部运行测试,当 TestMethod 遇到异常时,调试器中断异常,但 TestMethod 正确跳过并报告 Passed。

是否有一个标志告诉 VS 在单元测试期间不要中断?

【问题讨论】:

    标签: c# visual-studio-2010 unit-testing


    【解决方案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?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 2011-12-02
      • 1970-01-01
      • 1970-01-01
      • 2012-03-02
      • 2015-07-10
      • 2013-08-07
      相关资源
      最近更新 更多