Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中通过发布ID从TFS获取测试结果_C#_.net_Tfs_Azure Devops_Tfs Sdk - Fatal编程技术网

C# 如何在C中通过发布ID从TFS获取测试结果

C# 如何在C中通过发布ID从TFS获取测试结果,c#,.net,tfs,azure-devops,tfs-sdk,C#,.net,Tfs,Azure Devops,Tfs Sdk,我无法找到一种方法来获得C中给定版本的测试结果 我之前做的是,通过构建ID获取测试结果 下面是一个示例代码 int buildId = 123; const string TFS_url = "<TFS_URL>"; string projectname = "<Teamname>"; TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(new Uri(TFS_url)); //

我无法找到一种方法来获得C中给定版本的测试结果

我之前做的是,通过构建ID获取测试结果

下面是一个示例代码

  int buildId = 123;

  const string TFS_url = "<TFS_URL>";
  string projectname = "<Teamname>"; 
  TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(new Uri(TFS_url));
  // Get build information
  BuildHttpClient bhc = ttpc.GetClient<BuildHttpClient>();

  // Get testrun for the build
  TestManagementHttpClient ithc = ttpc.GetClient<TestManagementHttpClient>();

  QueryModel qm = new QueryModel("Select * From TestRun Where BuildNumber Contains '" + buildId + "'");

  List<TestRun> testruns = ithc.GetTestRunsByQueryAsync(qm, projectname).Result;

  List<List<TestCaseResult>> allTestresults = new List<List<TestCaseResult>>();

  foreach (TestRun testrun in testruns)
  {
    List<TestCaseResult> testresults = ithc.GetTestResultsAsync(projectname, testrun.Id).Result;
    allTestresults.Add(testresults);
  }

我更喜欢在C中使用给定的类,而不必通过API来实现。

构建/发布的测试结果存储在测试运行中,因此您只需要首先获取构建/发布的测试运行,然后从测试运行中检索测试结果

您可以从特定版本的测试日志中获取测试运行id

因此,最简单的方法是使用RESTAPI从日志中获取特定的测试运行id

GET https://{instance}/{project}/_apis/release/releases/{releaseId}/environments/{environmentId}/deployPhases/{releaseDeployPhaseId}/tasks/{taskId}/logs?api-version={version}
有关详细信息,请参阅


然后通过测试运行ID获取测试结果的详细信息。与构建的共享代码示例类似

感谢RESTAPI链接,我可以使用它。因此,没有一种方法可以像Microsoft.TeamFoundationServer.Client?Hi-Jteve_Sobs这样使用来自Microsoft的NuGet软件包,通过公共REST API提供对发布服务的访问。它实际上仍在使用RESTAPI调用。对于完整的软件包,您可以在此处查看我们的官方文档: