从TeamCity运行NUnit测试时出现FileNotFoundException



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

我的。dll引用了存在于同一文件夹中的其他dll。

当运行这些,我得到一个FileNotFoundException为引用dll。

我怎么能解决这个问题?我想也许TC NUnit运行器正在使用其他一些目录作为主要的应用程序执行文件夹,从而防止实际上居住在测试DLL旁边的文件不能正确加载,但无法证明这一说法……

还有人遇到过这种行为吗?

好吧,问题解决了,这确实是愚蠢和尴尬的:

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

**/*.Tests.dll

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

在这些文件夹中,当然不包括引用,这使得相同的测试运行两次,其中一些当然会失败!

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

如果没有帮助,请免费联系teamcity-feedback@jetbrains.com

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

最新更新