【问题标题】:How to get test results from TFS by Release ID in C#如何通过 C# 中的 Release ID 从 TFS 获取测试结果
【发布时间】:2020-06-28 12:25:48
【问题描述】:

我无法找到在 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】:

    build/release的测试结果存储在test runs中,所以你只需要先获取build/release的test run,然后再取回测试运行的测试结果。

    您可以从特定版本的测试日志中获取测试运行 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 即可获取测试结果详细信息。与您用于构建的共享代码示例类似。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    相关资源
    最近更新 更多