VS 2010调试器在连接到NUnit时不加载符号

Dav*_*nna 15 nunit visual-studio-2010

(我刚刚在groups.google.com上的NUnit讨论组中发布了这个)

在VS 2008下,我会在NUnit下运行我的测试,如果我需要调试,我会将VS2008调试器附加到正在运行的Nunit进程(Debug - > Attach to Process),并在我想要检查的代码上设置任何断点.当我在NUnit中点击Run buttion时,它会触及断点.(顺便说一句,如果重要的话,这是运行NUnit 2.5.2).

我刚刚升级到NUnit 2.5.4和VS 2010.当我设置断点,然后连接到NUnit时,我在断点上得到一个小警告符号,并将鼠标悬停在它上面给出工具提示"断点不会被击中.没有符号目前正在加载".转到Debug - > Windows - > Modules窗口显示加载了一大堆Windows和NUnit模块,符号状态为"Skipped loading symbols",然后是1个模块,每个模块都有一个有趣的名称(r1euhmh5)和"无符号加载"的符号状态.(没有像我正在测试的DLL那样具有远程名称的模块的痕迹).

右键单击有趣的文件名(假设是我测试中的DLL的一些映射),然后单击Load Symbol From From - > Symbol Path,导航到bin\debug文件夹,然后单击我测试的DLL的pdb文件,I收到消息"在此文件夹中找不到匹配的符号".("打开"对话框的顶部有一行显示"原始位置:r1euhmh5.pdb")

那么改变了什么?我如何在VS 2010/NUnit 2.5.4下进行调试/断点(或者当我决定通过我的VS2010选项并将它们中的一些设置为比我知道的更高级别时,我可能搞砸了一些东西在做什么?)

我感谢任何帮助.

Dav*_*nna 9

我不确定我究竟为什么,但答案是将调试器附加到nunit-agent.exe而不是nunit.exe.请参阅Charlie Poole 在这里的回复


Dav*_*her 5

这篇博文中有关于如何告诉NUnit在nunit.exe配置文件中使用正确的.Net框架的信息.

在配置文件中修复它的好处是,它允许您设置单元测试项目,以便在选择Debug - > Start New Instance时可以将NUnit作为外部命令启动.