【发布时间】:2012-07-25 16:50:35
【问题描述】:
我正在尝试使用 TFS API 扫描我所有的错误工作项,并查看是否有任何没有关联的测试用例。我正在考虑使用bug.Fields[26].Value == 0 来查看有多少相关链接,但我不确定测试用例是否是唯一被视为相关链接的东西。
如果没有与该错误相关的测试用例,我想为它创建一个测试用例。我已经知道如何创建一般的测试用例,但不知道与现有错误相关联的测试用例。
谁能告诉我如何做这些事情?谢谢。
【问题讨论】:
我正在尝试使用 TFS API 扫描我所有的错误工作项,并查看是否有任何没有关联的测试用例。我正在考虑使用bug.Fields[26].Value == 0 来查看有多少相关链接,但我不确定测试用例是否是唯一被视为相关链接的东西。
如果没有与该错误相关的测试用例,我想为它创建一个测试用例。我已经知道如何创建一般的测试用例,但不知道与现有错误相关联的测试用例。
谁能告诉我如何做这些事情?谢谢。
【问题讨论】:
任何链接到您的错误的工作项都被视为RelatedLink。检查here 以获取从Link 派生的可用类型以及@bryanmac 的this SO-post。
通过以下内容,您应该能够检索您的每个相关工作项的类型错误 123456。
using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client;
namespace WorkItemLinksOfAWorkItem
{
class Program
{
static void Main()
{
TfsTeamProjectCollection teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://TFSURI"));
var workItemStore = (WorkItemStore)teamProjectCollection.GetService(typeof(WorkItemStore));
var workItem = workItemStore.GetWorkItem(123456);
LinkCollection links = workItem.Links;
foreach (Link link in links)
{
if (!(link is RelatedLink))
continue;
var relLink = link as RelatedLink;
var relatedWI = workItemStore.GetWorkItem(relLink.RelatedWorkItemId);
Console.WriteLine(relatedWI.Id+" "+relatedWI.Type.Name);
}
}
}
}
(我最初在 Scrum Dashboard 中找到了这些来源的基础)
要为您的错误 123456 生成新的测试用例,您可以尝试以下操作:
var workItemTypes = workItemStore.Projects["TeamProjectName"].WorkItemTypes;
var workItem = new WorkItem(workItemTypes["Test Case"]) {Title = "Programmatically constructed via TFS-SDK"};
var relatedLinkToBug = new RelatedLink(123456);
var links = workItem.Links;
links.Add(relatedLinkToBug);
workItem.Save();
【讨论】: