TFS的測試管理提供了測試規划、創建、運行以及進度跟蹤等功能。測試人員通過瀏覽器就幾乎可以完成手個測試的全部過程。
用過TFS測試用例的朋友們,很多人應該都知道,在TFS的Portal中以及相應的數據倉庫中,沒有直接或者間接導入、導出測試用例的功能和方法。但是在實際的過程中,我接觸到多個研發團隊都有這個方面的需求,測試用例在團隊中使用Excel進行編制和管理的,測試人員也非常習慣於Excel工具的便捷和高效,因此完全用TFS Portal中的原生功能就降低了測試人員編制測試用例的效率。
2013后的TFS版本,盡管在Portal中提供了與Excel直接進行復制和粘貼的功能,但是受制與條數的限制,操作起來仍舊不太方便。因此,我編寫了一個TFS測試用例導入、導出的工具。工具使用的是C#編寫的一個WindowForm應用程序,通過調用TFS的鏈接庫組件和Excel組件來實現的。
工具的導出用例結果

程序中引用的DLL庫

程序的導入思路如下,按照測試團隊現有的測試用例模板格式,把Excel中的用例數據讀出來,在程序中組織並形成TFS中測試用例WorkItem對象數據,之后通過TFS組件的功能把用例數據保存到TFS的數據庫中。
導入界面功能

創建用例的代碼如下:
public bool CreateWorkItem(Project tfsProject, List<TFSWorkItemModel> tfsModels)
{
WorkItemType workItemType = tfsProject.WorkItemTypes["測試用例"];
TFSUserCaseModel tfsModel = null;
List<WorkItem> allWorkItem = new List<WorkItem>();
for (int i = 0; i < tfsModels.Count; i++)
{
tfsModel = (TFSUserCaseModel)tfsModels[i];
WorkItem workItem = new WorkItem(workItemType);
workItem.Title = tfsModel.Title;
workItem.AreaPath = tfsModel.Area;
workItem.IterationPath = tfsModel.Iteration;
workItem.Fields["測試類型"].Value = tfsModel.TestType;
workItem.Fields["用例設計人"].Value = tfsModel.Designer;
workItem.Fields["用例創建階段"].Value = tfsModel.CreatedPhase;
workItem.Fields["指派給"].Value = tfsModel.AssignTo;
workItem.Fields["步驟"].Value = TestStepConvert.ConvertToStep(tfsModel.Steps);
if (!string.IsNullOrEmpty(tfsModel.RequirementID))
{
WorkItemLinkTypeEnd workItemLinkTypeEnd = tfsProject.Store.WorkItemLinkTypes.LinkTypeEnds["測試"];
WorkItemLink workItemLink = new WorkItemLink(workItemLinkTypeEnd, int.Parse(tfsModel.RequirementID));
workItem.Links.Add(workItemLink);
}
if (workItem.Validate().Count > 0)
{
StringBuilder sb = new StringBuilder();
string userCaseErrorMessage = string.Format("用例:{0} 格式不正確。",workItem.Title );
sb.Append(userCaseErrorMessage );
foreach (Field item in workItem.Validate())
{
sb.Append( "--" + item.Name);
}
invalidWorkItems.Add(sb.ToString());
}
allWorkItem.Add(workItem);
}
if (invalidWorkItems.Count <= 0)
{
foreach (var item in allWorkItem)
{
try
{
item.Save();
}
catch
{
throw new LinkedWITException("wrong requirement ID");
}
}
}
return true;
}
程序的導出思路如下,鏈接到TFS團隊項目中,並加載出團隊項目中的所有查詢,把查詢結果數據中包含的測試用例類型的工作項數據導出到Excel中。
導出功能界面


