如何通过C#中的版本ID从TFS获取测试结果

问题描述 投票:0回答:1

我无法找到一种方法来获取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进行。

c# .net tfs azure-devops tfs-sdk
1个回答
0
投票

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

您可以从特定版本的测试日志中获得测试运行ID。

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

GET https://{instance}/{project}/_apis/release/releases/{releaseId}/environments/{environmentId}/deployPhases/{releaseDeployPhaseId}/tasks/{taskId}/logs?api-version={version}

请参见Get Task Log v5以获取详细信息。

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

© www.soinside.com 2019 - 2024. All rights reserved.