2010-07-15 57 views
2

这个答案已经很简单,但我肯定没有看到它。与VS 2010 NUnit不再停止在断点

我正在处理VS2010下的MVC2项目,并使用NUnit编写了单元测试。

我通过启动NUnit GUI来调试测试(和代码),然后单击调试 - >在VS中附加到进程,并附加到nunit-agent。

这一切都运行良好一段时间。

我为今天早上发现的一个bug添加了一个额外的测试,突然间,我的断点没有被击中。 NUnit只是愉快地运行,并说测试通过了(它不应该,因为我还没有修复这个bug),而且没有停在我在测试方法中第一个可执行行上设置的断点上。

我看过我能想到的所有东西,包括重新启动机器,但我无法弄清楚发生了什么变化。 (FWIW,测试项目配置为在.NET 3.5下运行,并且运行的是NUnit 2.5.4。我在nunit.exe.config的部分添加了4.0“supportedRuntime”标志和“loadFromRemoteResources”标志,并且我也尝试附加到nunit.exe而不是nunit-agent.exe。注意,我没有得到带有“源代码无法加载”消息的禁用断点按钮。断点是标准的红色球,它们只是从来没有得到点击。)

回答

3

答案确实很简单。

顺便说一句,我一直在使用VS2010通过附加到浏览器来调试脚本代码。当您在调试器中附加进程时,必须告诉它您正在调试的是哪种代码,并且调试脚本代码与调试托管代码不兼容,因此它会关闭托管代码。显然VS记得你最后的选择。

所以,当我试图连接到N单元,它选择脚本作为我想调试的代码类型,我没有注意到。我所要做的只是选择“附加到进程”对话框中的下拉框,然后检查托管代码。

感谢保罗·劳德曼在他的CodeBetter Blog

0

尝试附加到nunit-agent.exe进程。这对我有效。

+0

对不起,回答之前我读到底部。 AFAIK,你正在做你应该做的一切。 – 2010-07-15 17:41:09