我有一组NUnit测试(使用Resharper测试运行器运行),其中一些由于后台线程中发生的断言异常而失败;当这种情况发生时,VS2017会进入调试器,这是不可取的,因为我希望它继续运行其他测试。
如何防止它破坏这些例外的任何其他想法?
答案 0 :(得分:0)
我要提到的第一件事是断言异常不应该传播出你的测试框架。如果它们是,那么可能是因为我无法设想的一些偷偷摸摸的代码。换句话说,所有断言异常都是固有的“处理”,因为你的测试框架会为你处理它们。
还有运行与调试测试的概念。如果您的目的是简单地忽略测试中的所有异常,那么您应该选择运行 - 并且VS根本不会附加调试器(然后不能中断)。我不知道在resharper的测试跑步者中这种差异是什么样的,但在VS中它分别在Test > Run
和Test > Debug
菜单下。
如果您无法重新构建测试,并且想要调试其他异常(只是没有断言异常),或者想要达到断点,请阅读以下内容:
默认情况下,新的调试器(2015+)将在未处理异常时中断 - 但您可以针对所有异常或仅针对特定异常关闭此行为。
>
Windows >
例外设置)您现在应该看到文本"在用户代码中未处理时继续"在"附加行动"窗口的右侧列和VS不应该再破坏。
答案 1 :(得分:0)
显然,这是Visual Studio中的一个错误。安装以后的更新已修复它。