链接类型元素引用

使用不同的链接类型形成不同工作项类型之间的链接关系 (WIT)。 有三个链接类型的类别:系统定义、过程模板定义和用户定义。 在默认过程模板中定义的链接类型支持测试管理 WIT 之间的链接关系。

每个链接类型定义在构造工作项之间的链接时使用的链接标签、拓扑类型和限制。 例如,父子链接类型定义两个标签(父和子),它支持分层拓扑或树拓扑,并阻止在工作项之间创建循环引用。

若要自定义或创建链接类型,请使用 witadmin importlinktype 将链接类型定义文件导入到承载你的团队项目的项目集合中。

语法结构

你可以定义其他链接类型,方法是将它们添加到为团队项目集合定义的链接类型。 你可以基于链接类型定义架构提供的结构来定义在你的过程中使用的有效链接类型。 链接类型是在链接类型 XML 文件中由以下 XML 语法定义的:

<LinkTypes>
   <LinkType ReferenceName="LinkTypeName" ForwardName="ForwardName" ReverseName="ReverseName" Topology="TopologyType" />
</LinkTypes>

下表中的说明适用于上面的语法:

特性

描述

ReferenceName

链接类型的名称。 此名称在两个工作项之间创建链接时在内部使用。

ForwardName

源工作项上的链接名称。 在将链接添加到源工作项时显示此名称。

ReverseName

目标工作项上的链接名称。 显示目标工作项上的链接列表时显示此名称。

TopologyType

指定 DirectedNetwork、Network、Tree 或 Dependency 拓扑。 前三个拓扑为定向拓扑,你可以使用它们定义下属关系或顺序关系。 使用 Network 可以定义对等关系或相互间不存在隐含下属的关系。

链接的方向性由 ForwardName 和 ReverseName 特性的赋值确定。 如果创建一个自定义链接,并且指定相同的正向名称和反向名称,则应将链接类型设置为 Network,因为它是唯一的非定向拓扑。

要求

LINKTYPES 是由团队项目集合存储和使用的 LINKTYPE 元素集。

每个链接类型都有一个引用名称和两个可选的友好名称或名称标签,它们在项目集合中必须是唯一的。 每个链接类型名称必须满足以下要求:

  • 名称最多可以有 254 个 Unicode 字符。

  • 名称不能是空的。

  • 名称不能有前导空白或尾随空白。

  • 名称不能包含反斜杠 (\) 字符。

  • 名称不能包含两个连续空格。

系统定义的链接类型

下表总结了系统定义的链接类型。 你无法修改这些链接类型。

正向名称

反向名称

引用名称

拓扑

后续

前置

System.LinkTypes.Dependency

依赖项

子级

父级

System.LinkTypes.Hierarchy

相关

相关

System.LinkTypes.Related

网络

此外,提供了用于将工作项链接到团队项目中的其他对象或其他元素的其他链接类型,例如网页或网络位置。 例如,Storyboard 链接类型将工作项链接到情节提要或位于网络共享上的任何文件。 有关详细信息,请参阅链接工作项以支持可跟踪性.

过程模板定义的链接类型

当使用 TFS 提供的一个默认过程模板创建团队项目时,以下链接类型将添加到你的团队项目。 这些链接类型经过专门设计,用来支持与 Team Foundation 和 Microsoft 测试管理器 中的跟踪工作项进行交互。

测试管理工作项类型

正向名称

反向名称

链接类型引用名称

拓扑

影响(请参阅备注 1)

影响者

Microsoft.VSTS.Common.Affects

依赖项

引用方(请参阅备注 2)

参考资料

Microsoft.VSTS.TestCase.SharedParameterReferencedBy

依赖项

测试方

测试

Microsoft.VSTS.Common.TestedBy

依赖项

测试用例

共享步骤

Microsoft.VSTS.TestCase.SharedStepReferencedBy

依赖项

备注

  1. 影响和影响者链接类型链接对要求的更改请求。 此链接类型仅添加到使用 CMMI 过程模板创建的团队项目。

  2. 引用方/引用链接类型链接带有测试用例的共享参数以支持使用不同的数据运行测试。 当你使用配置功能向导更新团队项目或创建基于 TFS 2013.2 过程模板或更高版本的团队项目时,将此链接类型添加到团队项目。

链接类型定义文件在 Template.zip 文件的 WorkItem Tracking\LinkTypes 文件夹中定义。 下面的 Microsoft.VSTS.Common.TestedBy 链接类型定义在 TestedBy.xml 文件中定义:

<?xml version="1.0" encoding="utf-8"?>
<LinkTypes>
   <LinkType ReferenceName="Microsoft.VSTS.Common.TestedBy" ForwardName="Tested By" ReverseName="Tests" Topology="Dependency" />
</LinkTypes>

使用相应的过程模板创建团队项目时,会将链接类型定义导入到项目集合中。

链接限制和拓扑

下表中所述的拓扑类型确定对每个链接类型的使用所施加的限制。

拓扑类型

图示

网络:你可以使用网络链接在工作项之间创建非限制性基本关系。 此链接在两个端点是相同的。 允许创建循环关系。

示例用法:使用网络链接(如“相关”)可以记录可能共享依赖项的两个功能之间的关系。

网络链接拓扑

定向网络:你可以使用定向网络链接在指示方向性的工作项之间创建关系。 两个端点的链接名称不同。 允许创建循环关系。

示例用法:对于可能共享依赖项,且你希望以某种方式区分双方的两个功能,可以使用定向网络链接记录它们之间的关系。

定向网络链接拓扑

依赖项:你可以使用依赖项链接在具有方向性的工作项之间创建关系,并限制循环关系。 两个端点的链接名称不同。

在图示中,创建指向某个工作项的依赖链接时,该工作项不能包含指向相同工作项的依赖链接关系。

示例用法:使用依赖项链接可以记录为满足用户要求而必须完成的功能。

依赖项链接拓扑

:你可以使用树链接在工作项之间创建多级分层关系。 树链接支持多级分层视图,具有方向性,并限制循环关系。 两个端点的链接名称不同。 树链接是“工作项树”查询唯一支持的链接类型。

在图示中,不能向一个子级指派两个父级。

示例用法:使用树链接可以记录为实现一个功能而必须完成的团队任务和子任务。

树链接拓扑

链接类型架构定义

下面的代码列出链接类型的架构定义:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema 
  id="WorkItemLinkTypeDefinition" 
  elementFormDefault="unqualified" 
  attributeFormDefault="unqualified" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  targetNamespace="https://schemas.microsoft.com/VisualStudio/2005/workitemtracking/WorkItemLinkTypeDefinition.xsd" 
  xmlns="https://schemas.microsoft.com/VisualStudio/2005/workitemtracking/WorkItemLinkTypeDefinition.xsd" 
  xmlns:mstns="https://schemas.microsoft.com/VisualStudio/2005/workitemtracking/WorkItemLinkTypeDefinition.xsd" 
  xmlns:typelib="https://schemas.microsoft.com/VisualStudio/2005/workitemtracking/typelib"
  version="1.0">
   <xs:import namespace="https://schemas.microsoft.com/VisualStudio/2005/workitemtracking/typelib"/>
  <xs:simpleType name="TopologyTypes">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Network" />
      <xs:enumeration value="DirectedNetwork" />
      <xs:enumeration value="Dependency" />
      <xs:enumeration value="Tree" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="LinkTypeType">
    <xs:attribute name="ReferenceName" type="typelib:ReferenceName" use="required" />
    <xs:attribute name="Topology" type="TopologyTypes" use="optional" />
    <xs:attribute name="ForwardName" type="typelib:FriendlyName" use="optional" />
    <xs:attribute name="ReverseName" type="typelib:FriendlyName" use="optional" />
  </xs:complexType>
  <xs:complexType name="LinkTypesType">
    <xs:sequence>
       <xs:element name="LinkType" type="LinkTypeType" minOccurs="1" maxOccurs="unbounded" />
      </xs:sequence>
      </xs:complexType>
   <xs:element name="LinkTypes" type="LinkTypesType" />
</xs:schema>

问题解答

问:如何添加自定义链接类型?

**答:**根据本主题中提供的内容定义 XML 定义文件,然后使用 witadmin importlinktype 将链接类型定义文件导入到承载你的团队项目的项目集合。

问:何种链接类型用于将测试用例链接到测试套件以及将测试套件链接到测试计划?

**答:**使用 Team Web Access 或测试管理器,你可以查看哪些测试用例针对测试套件定义,哪些测试套件针对测试计划定义。 但是,这些对象并非通过链接类型互相链接。

请参见

概念

自定义工作跟踪对象以支持团队的进程

其他资源

链接工作项以支持可跟踪性