【问题标题】:How to prevent expected exceptions from breaking the debug test run?如何防止预期异常破坏调试测试运行?
【发布时间】:2011-03-22 16:37:07
【问题描述】:

在调试模式下运行 MSTEST 单元测试时,执行会在每个引发的预期异常中停止。我的测试是这样的

[TestMethod()]
[ExpectedException(typeof(ArgumentNullException))]
public void ShouldThrowExceptionWhenPassingNull()
{
    object data = null;
    target.CheckNull(data);
}

目标方法如下所示:

public void CheckNull(object data)
{
    if (ReferenceEquals(null, data))
    {
        throw new ArgumentNullException("data");
    }
} // test run breaks here: ArgumentNullException was unhandled by user code

【问题讨论】:

    标签: .net visual-studio exception debugging mstest


    【解决方案1】:

    您是否尝试使用ctrl-R ctrl-T 而不是ctrl-R T 运行测试?

    编辑 如果不是键盘快捷键问题,请查看this 链接。您可以按照那里的说明尝试以下操作:

    1. 对异常类型禁用“中断用户未处理的异常” 你在这里遇到(通过 调试 -> 异常)
    2. 对所有异常禁用“中断用户未处理异常”(通过 调试 -> 异常)
    3. 禁用“仅我的代码”

    【讨论】:

    • 我不使用键盘快捷键来运行测试,而是使用鼠标。我阅读了这篇文章,但它对我没有帮助,因为它显示了在有和没有调试的情况下运行的不同快捷方式。我想调试,但不会因预期的异常而停止。
    • @Jader Dias - 查看我的最新编辑以了解另一种可能的解决方案。
    • 这也会影响意外异常
    【解决方案2】:

    @dcp 的建议看起来适用于 MSTEST,但您可能需要考虑获取 TestDriven.Net。我几乎只将它用作测试运行器,并且使用右键单击“在调试中运行测试”模式没有这个问题。此外,我发现它几乎在所有情况下都比内置测试运行器更方便。

    【讨论】:

      【解决方案3】:

      CTRL + R A 为我工作,无需更改任何选项。

      我认为您遇到的问题是因为您正在从工具栏上的开始调试 (F5) 按钮运行测试项目。如果你点击绿色的播放按钮,你会在每一个异常中停下来,甚至是预期的。

      要运行所有测试而不停止每个异常,请单击: 测试 -> 运行 -> 解决方案中的所有测试 或者使用快捷键:CTRL + R, A

      在打开测试结果窗口的情况下,CTRL + R、D 也可以使用。在测试结果窗口中,运行测试和调试测试之间的区别变得清晰。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-23
        • 2022-11-09
        • 1970-01-01
        • 2012-04-05
        • 2015-08-09
        • 2011-07-31
        • 2013-10-08
        • 1970-01-01
        相关资源
        最近更新 更多