TeamCity 9和NUnit 2.6.4在运行测试时出现问题,它在本地运行良好。问题似乎是引用了Newtonsoft.Json(像往常一样)。
Test(s) failed. System.IO.FileLoadException : Could not load file or assembly 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
at System.Net.Http.Formatting.BaseJsonMediaTypeFormatter..ctor()
at System.Net.Http.Formatting.JsonMediaTypeFormatter..ctor()
at System.Net.Http.Formatting.MediaTypeFormatterCollection.CreateDefaultFormatters()
at System.Web.Http.HttpConfiguration.DefaultFormatters(HttpConfiguration config)
at System.Web.Http.HttpConfiguration..ctor(HttpRouteCollection routes)
at MyCompany.Testing.WebAPI.ControllerTestAssistant.PrepareActionContext(HttpRequestMessage request, IHttpController controller)
at MyCompany.Web.Http.HttpResponseBuilderTests.PrepareActionContext(HttpRequestMessage request)
at MyCompany.Web.Http.HttpResponseBuilderTests.PrepareBuilder(String url)
at MyCompany.Web.Http.HttpResponseBuilderTests.HttpResponseBuilder_BuildResponse__when__success_get_with_no_rowversion__then__200OK_with_no_etag()
解决方案是巨大的。我已将所有Json.NET软件包更新到7.x,并检查了所有配置文件中的所有绑定引用。
在所有团队的开发PC上,一切都很好。这只是构建服务器上的问题,在NUnit运行程序下。
我认为System.Net.Http.Formatting
在版本6.x上有一个很难的参考。就像测试运行器没有注意到配置中的绑定重定向一样。
我将开始削弱Json.NET,它变得比它的价值更麻烦,并且VS没有帮助解决这些问题。
感谢您的帮助。
路
Fusion日志显示未看到程序集绑定重定向,即使它在那里。同事检查了理智。
这很奇怪。
已删除测试项目的app.config
中的所有其他重定向,并尝试仅使用Json.NET重定向。
找不到应用程序配置文件
在Fusion日志中,越来越近了!
答案 0 :(得分:0)
知道了。
我有另一个测试DLL的引用,因此bin文件夹中最后包含两个*Tests.DLL
文件。
TeamCity由通配符配置,然后在两者中运行测试。引用的DLL没有配置文件,无法加载正确版本的Json.NET
引用的DLL中的测试已经运行并通过。我引用了另一个测试库来获取一些帮助器设置代码!
通常,我将TeamCity配置为在显式DLL路径上运行测试。