我在 .cs 页面中使用虚拟值更新了测试方法,但测试方法失败并在 Azure 管道 VStest Task

问题描述

我正在将一些虚拟值传递给测试方法,但它在 Pipeline VStest 任务中失败并显示以下错误消息。

错误信息:

System.AggregateException:发生一个或多个错误。 ---> Newtonsoft.Json.JsonSerializationException:无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型“System.Collections.Generic.IEnumerable`1[TransactionTables.Service.Entities.Header]”因为该类型需要一个 JSON 数组(例如 [1,2,3])才能正确反序列化。 要修复此错误,请将 JSON 更改为 JSON 数组(例如 [1,3])或更改反序列化类型,使其成为普通的 .NET 类型(例如,不是像整数这样的原始类型,而不是像这样的集合类型)可以从 JSON 对象反序列化的数组或列表)。 JsonObjectAttribute 也可以添加到类型中以强制它从 JSON 对象反序列化。 路径“错误”,第 2 行,位置 11。

堆栈跟踪:

at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader,Type objectType,JsonContract contract,JsonProperty member,JsonContainerContract containerContract,JsonProperty containerMember,Object existingValue) 在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader,Object existingValue) 在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader,Boolean checkAdditionalContent) 在 Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader,Type objectType) 在 Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader,Type objectType) 在 System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.ReadFromStream(Type type,Stream readStream,Encoding EffectiveEncoding,IFormatterLogger formatterLogger) 在 System.Net.Http.Formatting.JsonMediaTypeFormatter.ReadFromStream(Type type,IFormatterLogger formatterLogger) 在 System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.ReadFromStream(Type type,HttpContent content,IFormatterLogger formatterLogger) 在 System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.ReadFromStreamAsync(Type type,IFormatterLogger formatterLogger) --- 从上一个抛出异常的位置开始的堆栈跟踪结束 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter1.GetResult() at System.Net.Http.HttpContentExtensions.<ReadAsAsyncCore>d__01.MoveNext() --- 内部异常堆栈跟踪结束 --- 在 System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) 在 System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task1.get_Result() 在 C:\Users\username\Documents\Visual Studio 2015\Project\TransactionTables.Service.Tests\TransactionTablesControllerTest.cs:line 35 中的 TransactionTables.Service.Tests.TransactionTablesControllerTest.HeaderCount()

虚拟数据:

public void HeaderCount()
        {
            var result = 2 + 2;
            Assert.AreEqual(result,4);
        }

现有方法:

 public void HeaderCount()
        {
            var Url = new Uri("http://localhost/Header-service/Header");
             using (var client = new HttpMessageInvoker(Server))
            using (var request = new HttpRequestMessage(HttpMethod.Get,Url))
            {
                var requestHeader = request.SetRequestHeaders();
                using (var response = client.SendAsync(requestHeader,CancellationToken.None).Result)
                {
                    var eTAdminMasters = response.Content.ReadAsAsync<IEnumerable<TransactionTables.Service.Entities.Header>>().Result;
                    var count = eTAdminMasters.Count();
                    Assert.IsNotNull(count);// test method assert

                    }
                }
        }
    }
}

对于虚拟值和现有测试方法,我都收到相同的错误消息。我尝试评论和删除测试方法,但随后也在管道 VStest 任务中收到相同的错误消息。我的本地路径反映在堆栈跟踪消息中。 请在这里提供帮助。

提前致谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)