我有一个Web项目和一个单元测试项目来测试Web项目中的ASP.NET。每个TestMethod实例化将要测试的ApiController,如下所示:
[TestClass]
public class MyTestClass
{
[TestMethod]
public void MyTestMethod()
{
MyApiController controller = new MyApiController();
controller.Configuration = new HttpConfiguration();
// Other configuration steps
IEnumerable<MyObjects> myObjects = controller.Get();
// Assertions
}
}如果我在本地构建并从运行测试,这将运行良好。但是,当我在VisualStudio.com上的TFS实例中对新构建进行排队时,我的所有单元测试都会失败,HttpConfiguration ctor引发的异常如下:
Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(Boolean)'.抛出异常: System.MissingMethodException:方法未找到:'Void
下面是调用堆栈:
at System.Net.Http.Formatting.JsonContractResolver..ctor(MediaTypeFormatter formatter)
at System.Net.Http.Formatting.JsonMediaTypeFormatter..ctor()
at System.Net.Http.Formatting.MediaTypeFormatterCollection.CreateDefaultFormatters()
at System.Web.Http.HttpConfiguration.DefaultFormatters()
at System.Web.Http.HttpConfiguration..ctor(HttpRouteCollection routes)
at System.Web.Http.HttpConfiguration..ctor()
at MyTestClass.MyTestMethod()标准的.NET 4.5dll之外的所有依赖项都在nuget包中,这些包被签入源代码管理以供TeamBuild使用。在使用VisualStudio.com的构建服务器时,这是管理依赖关系的唯一方法(据我所知)。
因为TeamBuild是在云中运行的,而不是在我自己的机器上运行的,所以我很少有工具来诊断这个问题。任何帮助都将不胜感激。
发布于 2013-01-31 04:57:00
标准的.NET 4.5dll之外的所有依赖项都在nuget包中,这些包被签入源代码管理以供TeamBuild使用。
是否将宿主构建控制器配置为指向该自定义程序集,请参见下列图像,如果是,并且您仍然有相同的错误,请尝试在本地生成服务器上再现该情况。



https://stackoverflow.com/questions/14592348
复制相似问题