Я пытаюсь получить результат от тестового случая в TFS, выглядит примерно так.

really basic layout

И я не могу найти простой способ сделать это. Я пытался получить рабочий элемент напрямую, запросить свойство не удалось. Мне удалось использовать SDK для получения данных (которых я пытаюсь избежать)

_tfs = new TfsTeamProjectCollection(new Uri(website)) { ClientCredentials = what };
_tfs.EnsureAuthenticated();
var testService = _tfs.GetService<ITestManagementService>();
var aPoint = plan.QueryTestPoints("SELECT * FROM TestPoint WHERE TestCaseId = 10").SingleOrDefault();
console.Write(aPoint.MostRecentResultOutcome);

У меня есть идентификатор для тестового примера из webhook, так что это не проблема. Все, что я хочу, - это «Самый недавний результат». Есть ли способ получить эти данные из API REST в 1 вызов?

tfs
0
jeriley 5 Апр 2017 в 19:27

2 ответа

Лучший ответ

Как сказал Патрик, ты не можешь сейчас. То, что я закончил тем, что сделал захват идентификатора и System.TeamProject с webhook, передавая это как таковое

    private TfsTeamProjectCollection _tfs;
    private ITestManagementTeamProject _project;
    private readonly ITestManagementService _service;

    public TfsThing(string instanceUrl, string user, string password)
    {
        var cred = new VssBasicCredential(user, password);
        _tfs = new TfsTeamProjectCollection(new Uri(instanceUrl)) { ClientCredentials = cred };
        _tfs.EnsureAuthenticated();

        _service = _tfs.GetService<ITestManagementService>();
    }

    public string GetTestStatus(int id, string projectName)
    {
        var project = _service.GetTeamProject(projectName);
        var result = project.TestResults.ByTestId(id);

        return result.LastOrDefault()?.Outcome.ToString();
    }

Это был самый короткий путь, который я нашел, - может быть, не самый эффективный

Если вам интересно, это два пакета, которые я использовал

Install-Package Microsoft.TeamFoundationServer.Client
Install-Package Microsoft.TeamFoundationServer.ExtendedClient
0
jeriley 7 Апр 2017 в 15:54

Вы также можете использовать ниже REST API, который вернет список контрольных точек по идентификатору тестового примера в соответствии с информацией о вашем коде:

GET https://Fabrikam-Fiber-inc.VisualStudio.com/DefaultCollection/fabrikam-fiber-tfvc/_apis/test/plans/1/suites/1/points?testcaseid=39&api-version=1.0

Тогда получите ответ с lastTestRun, lastResutl, исход ...

{
  "value": [
    {
      "id": 1,
      "url": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/fabrikam-fiber-tfvc/_apis/test/Plans/1/Suites/1/Points/1",
      "assignedTo": {
        "id": "d291b0c4-a05c-4ea6-8df1-4b41d5f39eff",
        "displayName": "Jamal Hartnett"
      },
      "configuration": {
        "id": "2",
        "name": "Windows 8"
      },
      "lastTestRun": {
        "id": "28"
      },
      "lastResult": {
        "id": "100000"
      },
      "outcome": "Passed",
      "state": "Completed",
      "testCase": {
        "id": "39",
        "url": null,
        "webUrl": null
      },
      "workItemProperties": [
        {
          "workItem": {
            "key": "Microsoft.VSTS.TCM.AutomationStatus",
            "value": "Not Automated"
          }
        }
      ]
    }
  ],
  "count": 1
}
0
PatrickLu-MSFT 6 Апр 2017 в 09:19