【问题标题】:JsonSerializationException from TFS REST API response来自 TFS REST API 响应的 JsonSerializationException
【发布时间】:2016-09-15 18:28:29
【问题描述】:

我正在尝试将新的 TFS/VSTS REST API 与我们的本地 TFS 2015 服务器一起使用,但由于响应未通过内部验证,因此无法检索测试运行。

使用如下客户端代码:

var connection = new VssConnection(serverUri), credentials);
var client = connection.GetClient<TestManagementHttpClient>();
var runs = await client.GetTestRunsAsync("project", planId:183110);

在第 3 行抛出 JsonSerializationException 并带有以下消息:

Required property 'environmentName' not found in JSON. Pathvalue[0].testEnvironment', line 1, position 582.

这是准确的。检查 Fiddler 中的响应显示 testEnvironment 属性只有一个 environmentId 属性,没有 name。我已将回复的修剪样本上传至this gist。

我的问题是为什么 TFS 不返回这个值,或者,有没有办法强制 API SDK 忽略这个验证错误?

【问题讨论】:

  • 您是否对反馈进行投票并通过我的解决方法实现您的要求?
  • 感谢提醒!该解决方法完成了工作,并且响应现在回来了。

标签: c# tfs json.net azure-devops tfs-sdk


【解决方案1】:

如果 includeRunDetails 参数为真,我可以重现该问题。我报告了一个错误here,你可以投票。

解决方法是您可以将 includeRunDetails 设置为 false 以获取不包含详细信息的测试运行,然后根据结果(测试运行 id)获取包含所需详细信息的测试运行。

client.GetTestRunByIdAsync

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 2019-01-02
    相关资源
    最近更新 更多