当我进行单元测试并且出现以下异常时,谁能告诉我这有什么问题:
Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 中出现“Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException”类型的异常,但未在用户代码中处理
当我进行单元测试并且出现以下异常时,谁能告诉我这有什么问题:
Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 中出现“Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException”类型的异常,但未在用户代码中处理
我在 Visual Studio 2012 中遇到了这个问题。这是我修复它的方法:
在弹出的异常中,我在“当这种类型的异常不是用户处理时中断”旁边有一个复选框 。
我取消选中该框。
有时是简单的事情让你着迷。:)
一年后更新:)
所以这与这个特定问题无关,但我学到了另一个技巧来隐藏非 Microsoft .dll 引发的异常。(Assert.Failed 在其中一个系统库中,因此 OP 不需要使用这个技巧。)
您可能已经注意到,一些异常在未处理时会神秘地继续中断,即使您取消选中“抛出此异常类型时中断”框也是如此。
有一个原因!Visual Studio 不知道如何识别该异常类型。
以下是如何教它一个新技巧:
添加异常后,您还可以再次在弹出窗口中使用“抛出此异常时中断”复选框。
快乐编码!
What version of MS Test are you using (which Visual Studio)?
Are you debugging when the exception is thrown?
Looks like there is an article here with some clues about why this is happening:
我遇到了这个问题,我找到了一个可能有帮助的链接。
当附加调试器时,单元测试在 Silverlight 中的工作方式有些特殊 - 当您的一个单元测试中的断言失败时,Visual Studio 调试器会中断执行并打开调试器对话框。如果你想运行一大堆单元测试来查看哪些失败了,或者你只关心代码抛出的异常,那么这个特性真的会限制你的风格。值得庆幸的是,编辑调试器设置以消除这些断言异常非常容易。
- 第 1 步:转到 Visual Studio 2010 中的 Debug 菜单,选择 Exceptions...</li>
- 步骤#2:在例外对话框中,单击添加...
- 第 3 步:注册您想要 tweek 的异常类型 从 Type 菜单中,选择 Common Language Runtime Exceptions。在名称文本框中,键入 Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException。单击确定。
- 第 4 步:对 Microsoft.VisualStudio.TestTools.UnitTesting.AssertInconclusiveException 重复第 2 步和第 3 步
- 第 5 步:取消选中刚刚添加的异常的 Thrown 和 User-unhandled。
- 第 6 步:在“例外”对话框中,单击“确定”
- 第 7 步:享受新的简化例外。
但是,在我的情况下,由于使用属于单元测试库的断言与使用 nunit 库之间存在冲突,所以我遇到了它。当我删除该冲突时,我的测试按预期工作。