Получить определенный TestSuite по идентификатору с помощью TFS API
Я пытаюсь получить конкретный TestSuite с использованием API TFS для TestPlan.
TestSuite может существовать где угодно в иерархии TestSuite, поэтому, конечно, я мог бы написать рекурсивную функцию. Однако я хочу что-то более эффективное.
Есть метод, который я пропускаю, или, может быть, запрос, который я мог бы написать?
1 ответ
Если вы уже знаете testSuiteId
все довольно просто. Вам нужно только знать название вашего TeamProject teamProjectName
:
using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.TestManagement.Client;
namespace GetTestSuite
{
class Program
{
static void Main()
{
int testSuiteId = 555;
const string teamProjectName = "myTeamProjectName";
var tpc =
TfsTeamProjectCollectionFactory.GetTeamProjectCollection(
new Uri("http://tfsURI"));
var tstService = (ITestManagementService)tpc.GetService(typeof(ITestManagementService));
var tProject = tstService.GetTeamProject(teamProjectName);
var myTestSuite = tProject.TestSuites.Find(testSuiteId);
}
}
}
Если вы этого не сделаете, вам, вероятно, нужно найти решение, подобное представленному здесь (это сообщение С.Райтена), где рекурсия действительно проявляется. Доступ к testPlanId
предполагается:
using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.TestManagement.Client;
namespace GetTestSuite
{
class Program
{
static void Main()
{
int testPlanId = 555;
const string teamProjectName = "myTeamProjectName";
var tpc =
TfsTeamProjectCollectionFactory.GetTeamProjectCollection(
new Uri("http://tfsURI"));
var tstService = (ITestManagementService)tpc.GetService(typeof(ITestManagementService));
var tProject = tstService.GetTeamProject(teamProjectName);
var myTestPlan = tProject.TestPlans.Find(testPlanId);
GetPlanSuites(myTestPlan.RootSuite.Entries);
}
public static void GetPlanSuites(ITestSuiteEntryCollection suites)
{
foreach (ITestSuiteEntry suiteEntry in suites)
{
Console.WriteLine(suiteEntry.Id);
var suite = suiteEntry.TestSuite as IStaticTestSuite;
if (suite != null)
{
if (suite.Entries.Count > 0)
GetPlanSuites(suite.Entries);
}
}
}
}
}