Я использую VSTS с git.
У меня есть тестовые наборы с множеством связанных с ними рабочих элементов ошибок.
Я хочу специально получить все рабочие элементы с ошибками, связанные с конкретным контрольным примером, используя .NET Client Library или VSTS REST API. Версия API REST может быть 4.0 или более поздней.
Я не смог найти информацию, относящуюся к извлечению рабочих элементов ошибок, связанных с конкретным тестовым примером, хотя есть информация, относящаяся к извлечению всех рабочих элементов ошибок.
Вот код, который я пробовал:
статический список GetLinkedWorkItems ()
{
int [] workitemIds = new int [] {12697};
//VssConnection connection = Context.Connection;
VssConnection connection = new VssConnection(new Uri(vstsCollectionUrl), new VssClientCredentials());
WorkItemTrackingHttpClient workItemTrackingClient = connection.GetClient<WorkItemTrackingHttpClient>();
List<Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.WorkItem> workitems = workItemTrackingClient.GetWorkItemsAsync(workitemIds, expand: WorkItemExpand.Links | WorkItemExpand.Relations).Result;
foreach (var workitem in workitems)
{
Console.WriteLine("Work item {0}", workitem.Id);
if (workitem.Links != null)
{
foreach (var link in workitem.Links.Links)
{
Console.WriteLine(" {0} {1}", link.Key, link.Value);
}
}
}
return workitems;
}
Обратите внимание, что проблем с подключением к VSTS нет. Кроме того, я попытался использовать подход, основанный на запросах, как указано ниже, но безрезультатно:
VssConnection connection = new VssConnection(new Uri(vstsCollectionUrl), new VssClientCredentials());
//create http client and query for resutls
WorkItemTrackingHttpClient witClient = connection.GetClient<WorkItemTrackingHttpClient>();
Wiql query = new Wiql() { Query = "SELECT [Id], [Title], [State] FROM workitems WHERE [Work Item Type] = 'Test Case'" };
WorkItemQueryResult queryResults = witClient.QueryByWiqlAsync(query).Result;
//Display reults in console
var l = queryResults.WorkItemRelations;
var t = queryResults.WorkItems.Skip(0).Take(100);
if (queryResults == null || queryResults.WorkItems.Count() == 0)
{
Console.WriteLine("Query did not find any results");
}
else
{
foreach (var item in queryResults.WorkItems)
{
Console.WriteLine(item.Id);
Console.WriteLine(item.Url);
}
}