从TeamCity运行NUnit测试时出现FileNotFoundException

时间:2011-09-07 20:10:23

标签: nunit continuous-integration teamcity

我正在使用内置的TeamCity NUnit运行程序来运行存储在.DLL文件中的测试。

我的.DLL正在引用同一文件夹中存在的其他DLL。

运行这些时,我得到引用的DLL的FileNotFoundException。

我该如何解决这个问题?我想也许TC NUnit跑步者正在使用其他一些目录作为主应用程序执行文件夹,从而防止实际驻留在测试DLL旁边的文件无法正确加载,但无法证明这一说法......

其他人遇到过这种行为吗?

3 个答案:

答案 0 :(得分:9)

好的问题已经解决了,这确实很愚蠢和令人尴尬:

我已经设置了NUnit测试运行器来执行这些测试:

**/*.Tests.dll

这意味着它将包含来自/bin/Debug/以及其他文件夹的测试,例如obj/

在这些文件夹中,当然没有包含引用,使相同的测试运行两次,其中一些当然失败了!

答案 1 :(得分:1)

路径与构建结帐目录有关,而与任何工作目录无关。如果需要其他路径,请使用%reference%语法通过目录路径引用TeamCity属性。你在Windows下运行吗?你使用TeamCity 6.5吗?

如果这没有帮助,请随意联系teamcity-feedback@jetbrains.com

答案 2 :(得分:0)

在我的情况下,缺少的DLL是本机库,因为构建代理程序上安装了不正确的VC运行时版本,所以无法加载它。我的解决方案是将运行时DLL(位于' C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC \ redist \ x86 \ Microsoft.VC110.CRT')直接添加到项目中(构建操作) =内容,复制到输出目录=始终复制)。这也使安装更加友好。

希望这有帮助。