Как получить результаты теста из TFS по идентификатору выпуска в C# - PullRequest
1 голос
/ 17 марта 2020

Мне не удалось найти способ получить результаты теста для данного выпуска в C#.

То, что я делал раньше, это получение результатов теста по идентификатору сборки.

Вот пример кода

  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.

1 Ответ

1 голос
/ 18 марта 2020

Результат теста сборки / выпуска сохраняется в тестовых прогонах , поэтому вам просто нужно сначала получить тестовый прогон сборки / выпуска , а затем получить результат теста из тестового прогона.

Вы можете получить идентификатор тестового прогона из журнала тестов для определенного выпуска c.

Итак, самый простой способ - получить указанный c идентификатор тестового прогона с помощью REST API из журнала.

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

Подробнее см. Получить журнал задач v5 .

Затем просто введите идентификатор прогона теста, чтобы получить подробную информацию о результатах теста. Аналогично вашему общему примеру кода для сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...