TFS的测试管理提供了测试规划、创建、运行以及进度跟踪等功能。测试人员通过浏览器就几乎可以完成手个测试的全部过程。

用过TFS测试用例的朋友们,很多人应该都知道,在TFS的Portal中以及相应的数据仓库中,没有直接或者间接导入、导出测试用例的功能和方法。但是在实际的过程中,我接触到多个研发团队都有这个方面的需求,测试用例在团队中使用Excel进行编制和管理的,测试人员也非常习惯于Excel工具的便捷和高效,因此完全用TFS Portal中的原生功能就降低了测试人员编制测试用例的效率。

2013后的TFS版本,尽管在Portal中提供了与Excel直接进行复制和粘贴的功能,但是受制与条数的限制,操作起来仍旧不太方便。因此,我编写了一个TFS测试用例导入、导出的工具。工具使用的是C#编写的一个WindowForm应用程序,通过调用TFS的链接库组件和Excel组件来实现的。

工具的导出用例结果

 

 

程序中引用的DLL库

 

 

程序的导入思路如下,按照测试团队现有的测试用例模板格式,把Excel中的用例数据读出来,在程序中组织并形成TFS中测试用例WorkItem对象数据,之后通过TFS组件的功能把用例数据保存到TFS的数据库中。

导入界面功能

 

 

创建用例的代码如下:

复制代码

  CreateWorkItem(Project tfsProject, List<TFSWorkItemModel> tfsModels)
        {
            WorkItemType workItemType = tfsProject.WorkItemTypes[];
            TFSUserCaseModel tfsModel = ;
            List<WorkItem> allWorkItem =  List<WorkItem>();             ( i = ; i < tfsModels.Count; i++)
            {
                tfsModel = (TFSUserCaseModel)tfsModels[i];
                WorkItem workItem =  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); 

                 (!.IsNullOrEmpty(tfsModel.RequirementID))
                {
                    WorkItemLinkTypeEnd workItemLinkTypeEnd = tfsProject.Store.WorkItemLinkTypes.LinkTypeEnds[];
                    WorkItemLink workItemLink =  WorkItemLink(workItemLinkTypeEnd, .Parse(tfsModel.RequirementID));
                    workItem.Links.Add(workItemLink);
                }                 (workItem.Validate().Count > )
                {               
                    StringBuilder sb =  StringBuilder();                     userCaseErrorMessage =  .Format(,workItem.Title );
                    sb.Append(userCaseErrorMessage );                     (Field item  workItem.Validate())
                    {
                        sb.Append(  + item.Name);
                    }
                    invalidWorkItems.Add(sb.ToString());
                }
                allWorkItem.Add(workItem);

            }             (invalidWorkItems.Count <= )
            {                 ( item  allWorkItem)
                {                    
                    {
                        item.Save();
                    }                    
                    {                          LinkedWITException();
                    }
                }
            }             ;
        }

复制代码

 

 

     程序的导出思路如下,链接到TFS团队项目中,并加载出团队项目中的所有查询,把查询结果数据中包含的测试用例类型的工作项数据导出到Excel中。

导出功能界面