我有一个控制台应用程序,我在项目中添加了一个类库解决方案来保存我的所有单元测试。
除了在我运行测试时没有遇到断点这一事实以外,一切正常。
如果我运行整个应用程序,控制台应用程序上的断点就会受到影响。
如果我运行测试,测试类和控制台应用程序中的断点将被完全忽略。
我看到另一篇帖子说去调试>启动新实例,但因为它是一个类库我不能这样做。我应该在不同的项目类型中拥有测试类吗?
我正在使用Nunit,VS2012和NUnit跑步者。
我有几个测试失败,我无法弄清楚为什么,我真的需要能够逐步完成代码。
非常感谢任何帮助。
答案 0 :(得分:21)
尝试调试测试,而不是运行测试
答案 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)
在我的情况下,一行代码似乎执行了永无止境的循环,这使得无法到达断点。
解决方案:在调试方法的开头放置一个断点,以检查此错误!