我刚从NUnit 2.5.2“升级”到NUnit 2.5.7,这样我就可以针对使用.Net Framework 4构建的DLL运行单元测试。我已经使用2.5.2很长一段时间了项目属性下的“StartExternalProgram”属性。在那种情况下,我从来没有必要显式调试附加到NUnit进程。
现在在2.5.7下,似乎必须显式附加到NUnit_Agent进程才能调试正在测试的代码。
当然这意味着我不需要两次点击来运行我的单元测试,而是现在必须单击VS2010中的Debug.Run图标,等待NUnit GUI出现,alt-Tab返回VS2010,单击Debug.Attach .. ,向下滚动列表找到NUnit Agent,双击选择它,alt-Tab返回NUnit GUI,单击Run运行测试。
那么,是否有理由在2.5.7下使用NUnit变得更加困难或者球被丢弃了?
提前感谢有关恢复早期版本的“自动附加”的任何建议。
答案 0 :(得分:6)
问题是NUnit正在启动一个子进程(nunit-agent.exe。)我可以通过打开nunit.exe.config并添加以下部分来解决这个问题:
<startup>
<supportedRuntime version="v4.0.30319" />
</startup>
编辑:如果您仍想将nunit与.Net 2.0一起使用,请务必同时添加该版本。我的配置最终看起来像这样:
<startup>
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0.30319" />
</startup>
编辑2:我最近也发现条目的顺序也有所不同。
答案 1 :(得分:0)
对你的问题可能不是一个很好的答案,但是另一种看待它的方式:Resharper包含一个在VS2010 gui中运行nunit测试的组件,无需任何单独配置的外部程序。这可能会简化你的事情吗?