C# Nunit未命中测试项目类库中的断点(VS2012)

C# Nunit未命中测试项目类库中的断点(VS2012),c#,.net,unit-testing,visual-studio-2012,nunit,C#,.net,Unit Testing,Visual Studio 2012,Nunit,我有一个控制台应用程序,我在项目中添加了一个类库解决方案来保存我的所有单元测试 除了在运行测试时断点不会被击中这一事实之外,所有这些都工作正常 如果我运行整个应用程序,控制台应用程序上的断点会被很好地命中 如果我运行测试,测试类和控制台应用程序中的断点将被完全忽略 我看到另一篇帖子说去调试>启动新实例,但由于它是一个类库,我不能这样做。我应该在不同的项目类型中设置测试类吗 我正在使用Nunit、VS2012和Nunit跑步者 我有几个测试失败,我不知道为什么,我真的需要能够逐步通过代码 非常感谢

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

除了在运行测试时断点不会被击中这一事实之外,所有这些都工作正常

如果我运行整个应用程序,控制台应用程序上的断点会被很好地命中

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

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

我正在使用Nunit、VS2012和Nunit跑步者

我有几个测试失败,我不知道为什么,我真的需要能够逐步通过代码


非常感谢您的帮助。

不要运行您的测试,请尝试调试您的测试


我的测试代码是在.NET4.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) 在记事本中打开fine并搜索该行

<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) 删除受支持的运行时版本=v2.0.50727的行并保存该文件(通过右键单击打开admin中的记事本以管理员模式打开,并以管理员身份打开)


5) 重新生成项目并运行测试代码的调试会话。断点将被命中。

对于存在此问题的任何其他人:检查您是否正在以发布模式构建


我在NUnit 3.7.0、dotnet core 1.0和VS 2017中遇到了这个问题。原来我是在发布模式下构建的。在调试模式下构建解决了这个问题。

在我的例子中,一行代码似乎执行了一个永无止境的循环,这使得无法到达断点


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

谢谢大家!!你让我的一天轻松多了:)我:为什么我的断点没有命中!?VisualStudio是愚蠢的!![将光标向下移动1/4”以选择调试测试而不是运行测试]……哦…………我有过几次遇到这个问题,每次都要查找这个答案。我期待着以后阅读此评论。