在TeamCity中禁用MSTest临时目录

5

我正在使用TeamCity Professional来持续构建和测试我的代码。

我有一些基于MSTest的测试,在我的PC上在VS2010中运行良好,但在构建服务器上失败。

我查看了一下,并发现在测试时,TeamCity在其TEMP_DIR(可配置)中创建一个临时目录,并将“第一个关系”的依赖项仅复制到测试DLL中。

例如:我的测试使用NHibernate.dll,它被复制到临时目录中,但它的依赖项(即NHibernate.ByteCode.Castle)没有被复制,测试会因为IO.FileNotFound异常而失败。

是否有办法只从测试项目的输出目录(Test/bin/debug)运行测试?

如果不行,我该如何指定应将哪些DLL复制到临时目录中?

1个回答

13
你可以在你的解决方案中添加一个 TestSettings 文件,该文件将描述所有要部署的文件。
首先,添加一个 TestSettings 文件。打开它,在 "Deployment" 选项卡中添加你需要的所有文件(即 .dll 文件)。然后在 TeamCity 中,在 MSTest 构建步骤中,在 "Additional command parameters" 区域指定要使用的 TestSettings 文件。例如:"/testsettings:Local.Testsettings" 这样,你在部署项目中指定的所有文件都将被复制到临时目录中。

3
这帮了我很多 - 谢谢!这里有两个可能会对其他人有帮助的提示:首先,我能够在TeamCity设置中的“MSTest运行配置文件:”中指定xxx.Testsettings文件。其次,该字段期望从TeamCity的工作目录(实际上是您存储库的顶层)指定文件路径。 - ruttopia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接