nunit锁定DLL

时间:2011-03-03 15:31:49

标签: visual-studio-2010 nunit

我一直在Windows 7 64位PC上使用nunit和visual studio 2010。

我可以打开nunit gui并运行我的单元测试。如果我然后更改其中一个单元测试并尝试重建,我收到文件锁定错误,如下所示 -

  

错误1无法将文件“obj \ Debug \ myProject.Tests.dll”复制到   “斌\调试\ myProject.Tests.dll”。该进程无法访问该文件   'bin \ Debug \ myProject.Tests.dll',因为它正被另一个人使用   处理。 myProject.Tests

我已经使用进程资源管理器来验证是否是锁定dll的nunit-agent.exe。

我注意到通过工具>测试程序集nunit.exe在clr版本Net 2.0下运行,nunit-agent.exe在clr版本Net 4.0下运行。这可能与问题有关吗?如果是这样,我该如何解决?如果没有,有没有人知道还有什么可能发生?

感谢您的任何想法。

3 个答案:

答案 0 :(得分:18)

我认为这与我的测试项目的位置有关。最初,我将nunit测试项目放在我的dll文件的单独目录中。我以为我会把所有的测试项目放在一个集中的位置。

我将他的测试项目移动到与我的视觉工作室项目下的测试dll相同的位置。之后,它似乎正常工作。

我认为这必须做影子副本。我在谷歌的nunit小组中读到.net框架只会在应用程序库或它的子目录中隐藏复制程序集。

这促使我尝试在我的应用程序库中创建nunit测试项目,这似乎有效。

希望这是有道理的。

由于

答案 1 :(得分:8)

我也遇到了确切的问题,但是czuroski的答案对我不起作用(虽然我认为我们实际上是在谈论同样的事情)。

对我来说有用的是确保在NUnit中设置Project PathProject Base指向Project下的同一根应用程序文件夹 - > Edit。我将现有的Nunit项目重新保存到与我的VS sln文件相同的目录中。

答案 2 :(得分:0)

尝试此操作,依次单击“工具”>“设置”>“测试加载器”>“程序集隔离”>“默认过程模型”>“每个程序集在单独的过程中运行测试”。