Nunit没有在测试项目类库(VS2012)中遇到断点

时间:2013-12-18 07:39:15

标签: c# .net unit-testing visual-studio-2012 nunit

我有一个控制台应用程序,我在项目中添加了一个类库解决方案来保存我的所有单元测试。

除了在我运行测试时没有遇到断点这一事实以外,一切正常。

如果我运行整个应用程序,控制台应用程序上的断点就会受到影响。

如果我运行测试,测试类和控制台应用程序中的断点将被完全忽略。

我看到另一篇帖子说去调试>启动新实例,但因为它是一个类库我不能这样做。我应该在不同的项目类型中拥有测试类吗?

我正在使用Nunit,VS2012和NUnit跑步者。

我有几个测试失败,我无法弄清楚为什么,我真的需要能够逐步完成代码。

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:21)

尝试调试测试,而不是运行测试

enter image description here

答案 1 :(得分:3)

对于遇到此问题的其他人:检查您是否在发布模式下构建。

我在NUnit 3.7.0和dotnet core 1.0以及VS 2017中遇到了这个问题。事实证明我正在以发布模式构建。在调试模式下构建可以解决问题。

答案 2 :(得分:2)

我的测试代码是在.Net 4.5中编译的,并且正在使用Nunit2.6.1。

如果我只进行了测试项目的调试选项 - >启动外部程序 - > nunit-86x.exe并将.dll名称作为命令行参数,那么断点就不会受到影响。

这启动了Nunit exe,但没有断点。

1)要解决这个问题,请转到

C:\Program Files (x86)\NUnit 2.6.1\bin

2)搜索nunit-x86.exe.config或者如果您打算使用nunit.exe,请打开nunit.exe.config

3)打开记事本中的罚款并搜索

<startup useLegacyV2RuntimeActivationPolicy="true">
<!-- Comment out the next line to force use of .NET 4.0 -->
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0.30319" />
</startup>

4)删除支持的Runtime version = v2.0.50727行并保存文件(通过右键单击管理员在管理员中打开记事本,以管理员模式打开,然后以管理员身份打开)。

5)重建项目运行测试代码的调试会话。断点将被击中。

答案 3 :(得分:0)

在我的情况下,一行代码似乎执行了永无止境的循环,这使得无法到达断点。

解决方案:在调试方法的开头放置一个断点,以检查此错误!