“使用团队城市构建时无法加载文件或程序集]

问题描述 投票:12回答:3

我在Team City(8.0.4)构建服务器上遇到单元测试问题-代码通过Resharper和nCrunch在本地构建并运行所有测试。

但是在Unity上运行时,即使Unity程序集与单元测试程序集位于同一目录中,并且在单元测试程序集中被引用,也会出现以下错误。

SetUp方法失败。 SetUp:System.IO.FileNotFoundException:无法加载文件或程序集“ Microsoft.Practices.Unity,版本= 2.0.414.0,Culture =中性,PublicKeyToken = 31bf3856ad364e35”或其依赖项之一。该系统找不到指定的文件。在XXXX.Unity.UnityContainerAdapter..ctor()在c:\ TeamCityV7 \ Agent-1 \ work \ f02f7e27c0bedfa2 \ XXXX \ Graph.Tests \ Extensions \ GraphExtensionsTests.cs:第44行的XXXX.GraphExtensionsTests..ctor()

我已经确认Microsoft.Practices.Unity的副本是正确的版本。

我还确认了程序集是使用框架的完整版本构建的-不使用客户端配置文件。

关于Team City可能会失败的任何想法?

我在Team City(8.0.4)构建服务器上遇到了单元测试的问题-该代码通过Resharper和nCrunch在本地构建和运行所有测试。但是当在服务器上运行时,我得到...

.net unit-testing continuous-integration teamcity .net-assembly
3个回答
16
投票

检查用于定位测试部件的模式。我在另一个库中遇到了类似的问题,结果发现模式是在bin \ Release和obj \ Release下找到测试程序集; obj文件夹不包含项目引用的所有程序集,而实际上只是编译器的暂存文件夹。


1
投票

我最近发现的另一种可能性是,如果您使用的是未明确引用的库,TeamCity将不会收集该库供使用,并且在隐式引用程序集时会失败。我在尝试弄清楚为什么未加载我的测试项目中引用的NHibernate.ByteCode.Castle并在TeamCity上导致FileNotFoundException时发现了这一点。最终,我像这样进行了“虚拟”单元测试:


0
投票

第一步是核对存储库的本地副本并重新克隆它。如果要部署分支,请在还原软件包和首次构建之前切换到该分支。您将获得有关问题真正原因的更好线索。

© www.soinside.com 2019 - 2024. All rights reserved.