Получить шаги теста TFS всегда возвращает счетчик 0 - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь получить шаги теста (также называемые «действиями»), которые были добавлены в тестовый набор в TFS (2017.2) с использованием API (Microsoft.TeamFoundationServer.ExtendedClient v15.112.1). Моя текущая реализация всегда возвращает 0 шагов теста, хотя в реальном тесте есть шаги. Я попробовал это и в новом чистом командном проекте без какой-либо настройки рабочего элемента, и даже там он возвращает 0 шагов. Моя реализация использует более старый API (на основе веб-сервисов SOAP), потому что кажется, что более новый API на основе http еще не реализует этапы тестирования. Это код, который я использовал:

private void GetTestStepsForTestCase(int testCaseId, int testSuiteId, 
string teamProjectName, Uri tfsUrl)
{
   TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(tfsUrl);
   ITestManagementService itms = tpc.GetService<ITestManagementService>();
   ITestManagementTeamProject ittp = itms.GetTeamProject(teamProjectName);
   ITestSuiteBase suite = ittp.TestSuites.Find(testSuiteId);
   ITestCaseCollection testCaseCollection = suite.AllTestCases;
   ITestCase itestCase = testCaseCollection.FirstOrDefault(t => t.Id == testCaseId);

   foreach (Microsoft.TeamFoundation.TestManagement.Client.ITestAction itestAction in itestCase.Actions)
   {
      // Do something
   }
}

Любой

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

ОК, я наконец-то понял это сам. Ответ и комментарии Энди помогли мне проверить правильность моего кода. Я только что обнаружил, что мой код работает нормально, когда НЕ отлаживается! При отладке в какой-то момент я заметил это:

The function evaluation requires a threads to run

Так что, вероятно, из-за отложенной загрузки где-то невозможно проверить количество времени отладки вложений (см. Сообщение здесь: Lazy : «Для оценки функции требуются все потоки» ).

0 голосов
/ 08 мая 2018

Вы можете использовать приведенный ниже пример, чтобы получить шаги тестового примера из определенного набора тестов, он работает на моей стороне:

Установите пакет nuget: Microsoft.TeamFoundationServer.ExtendedClient - 15.112.1

using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.TestManagement.Client;
using Microsoft.VisualStudio.Services.Client;
using System;

namespace RetrieveTestSteps
{
    class Program
    {
        static void Main(string[] args)
        {
            var u = new Uri("http://server:8080/tfs/DefaultCollection");
            var c = new VssClientCredentials();
            TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(u, c);
            tpc.EnsureAuthenticated();   
            ITestManagementService itms = tpc.GetService<ITestManagementService>();
            ITestManagementTeamProject ittp = itms.GetTeamProject("LCScrum");
            ITestSuiteBase suite = ittp.TestSuites.Find(352);
            ITestCaseCollection testCaseCollection = suite.AllTestCases;

            foreach (var tc in testCaseCollection)
            {
                ITestCase testcase = ittp.TestCases.Find(tc.Id);

                foreach (ITestAction action in testcase.Actions)
                {
                    Console.WriteLine(String.Format("{0} - {1}", testcase.Id, action));
                }
            }
            Console.Read();
        }
    }
}

enter image description here

...