【发布时间】:2011-06-02 23:22:01
【问题描述】:
我有以下抛出 nullReferenceException 的 xUnit 单元测试。
所以我决定调试。但是,当我调试时,我的测试甚至在它到达第一个断点之前就失败了。
我该如何解决这个问题?
【问题讨论】:
-
它实际上在哪里抛出 NullReferenceException?
标签: c# .net unit-testing tdd xunit.net
我有以下抛出 nullReferenceException 的 xUnit 单元测试。
所以我决定调试。但是,当我调试时,我的测试甚至在它到达第一个断点之前就失败了。
我该如何解决这个问题?
【问题讨论】:
标签: c# .net unit-testing tdd xunit.net
在下次运行单元测试之前,点击CTRL-D, E 以调出Debug |例外窗口。为了更快,只需在Thrown 列中的CLR Exceptions 旁边打勾。现在运行。希望执行将在您的NullReferenceException 的来源处中断。
【讨论】:
我在 Visual Studio 2017 中遇到了类似的问题。单元测试项目是由框架自动添加的。我阅读了很多博客,但没有什么能解决我的问题。 最后我使用以下方法让它工作: 在解决方案级别,右键单击 => 属性=> 将它们设置为调试模式。
【讨论】:
似乎您在测试方法之前发生了错误。我会检查构造函数。可能是那里的测试初始化代码。
【讨论】:
您是否有与 MSTest 的 [ClassInitialize] 或 [TestInitialize] 属性的 xUnit 等效项的方法?如果其中之一抛出你的 NullReferenceException,那可能就是它没有达到你的断点的原因。
【讨论】:
我不熟悉 xUnit,但它听起来也像你的测试类:
init 方法或构造函数失败
无法从其 DLL 创建。
确保你复制了任何依赖的 DLL 和资源来测试静态类 int 上的执行目录, 在类的构造函数之前调用。
【讨论】: