VisualStudio.com上的MSTest表现与本地MSTest不同

时间:2013-01-29 21:10:16

标签: tfs json.net tfsbuild tfs2012 azure-devops

我有一个ASP.NET Web API项目和一个单元测试项目来测试Web API项目中的ApiControllers。每个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
    }
}

如果我在本地构建并从Test Explorer运行测试,则运行正常。但是,当我在VisualStudio.com上的TFS实例中排队新构建时,我的所有单元测试都失败,并从HttpConfiguration ctor抛出以下异常:

  

MyTestMethod抛出异常:System.MissingMethodException:方法没有   发现:'无效   Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(布尔值)”

这是callstack:

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.5 dll之外的所有依赖项都在nuget包中,这些包被检入到源控件中以供TeamBuild使用。这是使用VisualStudio.com的构建服务器时管理依赖关系的唯一方法(我知道)。

因为TeamBuild是在云中运行而不是在我拥有的机器上运行,所以我很少有工具来诊断它。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

  

我在标准.NET 4.5 dll之外的所有依赖项都在nuget中   检查到源控件的包将被使用   TeamBuild。

您是否将托管构建控制器配置为指向该自定义程序集,请参阅以下图像,如果是,并且您仍然遇到相同的错误,请尝试在本地构建服务器上重现该案例。

enter image description here

enter image description here

enter image description here

答案 1 :(得分:0)

安装最新版本。 下载链接: http://json.codeplex.com/downloads/get/534445