TFS2017/2018测试用例工作项自定义字段打印问题求助
解决TFS 2017/2018测试计划打印自定义HTML字段的问题
我来帮你捋捋这个问题——你已经搞定了自定义字段在工作项里的配置,但测试计划打印功能没跟上,这大概率是因为没覆盖到测试计划打印对应的XSL样式表和布局设置,下面是具体的解决步骤:
1. 确认测试计划打印依赖的核心文件
TFS中测试计划的整体打印逻辑主要依赖TestPlan.xsl,你之前修改的TestCase.xml和TestSuite.xsl主要对应测试用例、测试套件的单独打印,测试计划的打印需要单独调整这个核心样式文件。
2. 修改TestPlan.xsl渲染自定义HTML字段
找到服务器上的TestPlan.xsl文件(路径通常为:C:\Program Files\Microsoft Team Foundation Server 15.0\Application Tier\Web Services\_layouts\15\TFSReports\TestManagement,TFS2018对应版本号为16.0),打开后在你希望显示自定义字段的区域(比如测试用例详情模块)添加以下代码:
<xsl:if test="CustomFields/CustomField[FieldReferenceName='你的自定义字段引用名']/Value != ''"> <tr> <td class="Label">*你的字段显示名*:</td> <td class="Value"> <xsl:value-of select="CustomFields/CustomField[FieldReferenceName='你的自定义字段引用名']/Value" disable-output-escaping="yes"/> </td> </tr> </xsl:if>
- 务必替换
你的自定义字段引用名和你的字段显示名为实际值,引用名必须和TestCase.xml里定义的完全一致(区分大小写) disable-output-escaping="yes"是关键设置,能让HTML字段里的格式(换行、加粗等)正确渲染,而非输出纯HTML代码
3. 确保TestCase.xml的打印布局包含自定义字段
检查你用witadmin importwitd导入的TestCase.xml,确认PrintLayout节点下已经添加了自定义字段的配置,比如:
<Section> <Group Label="自定义测试信息"> <Control FieldName="你的自定义字段引用名" Type="FieldControl" LabelPosition="Left"/> </Group> </Section>
如果之前没配置,补充后重新执行导入命令:
witadmin importwitd /collection:http://你的TFS服务器:8080/tfs/你的集合 /p:你的项目 /f:TestCase.xml
4. 生效变更并测试
- 替换完
TestPlan.xsl后,重启TFS应用层服务(可在TFS管理控制台操作),确保服务器加载新的样式表 - 打开TFS中的目标测试计划,点击「打印」按钮,检查自定义HTML字段是否正常显示且格式正确
常见排查点
- 字段引用名拼写错误:这是最容易踩的坑,一定要和工作项定义里的引用名完全匹配
- 服务器缓存未更新:替换XSL后未重启服务,TFS可能仍在使用旧缓存文件
- HTML字段内容不规范:如果渲染异常,检查字段内的HTML是否符合标准(比如标签是否闭合)
内容的提问来源于stack exchange,提问作者E. C.
相关产品推荐
相关产品推荐

