如何为 TFS/VSTS 工作项查询格式化 HTML 字段

How do I format HTML Fields for TFS / VSTS workitem queries

我正在尝试使用 Team Foundation Server Power Tools (tfpt) 以编程方式创建工作项。我需要以这种方式创建许多测试用例。不幸的是,电动工具在很大程度上没有记录,但我已经追踪到最后剩下的一点。我需要能够与测试用例一起创建测试步骤。这是通过一个名为 Steps=

的字段完成的

例如:/fields: "Title=My Title;Steps="

现在在字段资源管理器中尽我所能挖掘,步骤后的文本必须是 "HTML formatted" 但我不知道微软对 HTML 的定义是什么以及标签应该是什么以便正确提供数据。

非常感谢任何帮助

一般HTML格式化值,例如<div></div>, <B></B>.详细值会被编码。您可以通过 online tool.

获取编码值

另一方面,还有附加信息指示测试步骤操作,例如:<step id=”4” type=”ActionStep”> <parameterizedString isformatted="true"></ parameterizedString></step>.

一个简单的步长值:

<steps id=\"0\" last=\"4\"><step id=\"2\" type=\"ActionStep\"><parameterizedString isformatted=\"true\">&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;st&lt;B&gt;ep&lt;/B&gt;1&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;</parameterizedString><parameterizedString isformatted=\"true\">&lt;DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;</parameterizedString><description /></step><step id=\"3\" type=\"ActionStep\"><parameterizedString isformatted=\"true\">&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;st&lt;I&gt;ep&lt;/I&gt;2&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;</parameterizedString><parameterizedString isformatted=\"true\">&lt;DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;</parameterizedString><description /></step><step id=\"4\" type=\"ActionStep\"><parameterizedString isformatted=\"true\">&lt;DIV&gt;&lt;P&gt;&amp;nbsp;s&lt;U&gt;te&lt;/U&gt;p3&lt;/P&gt;&lt;/DIV&gt;</parameterizedString><parameterizedString isformatted=\"true\">&lt;DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;</parameterizedString><description /></step></steps> 

我建议您可以使用 TFS/VSTS API(Client SDK 或 Rest API)创建测试用例

C#代码:

NetworkCredential cred = new NetworkCredential("XXX", "XXX");
     TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri("[collection url]"), cred);
            tpc.EnsureAuthenticated();

            var workItemStore = (WorkItemStore)tpc.GetService(typeof(WorkItemStore));
            Project teamproject = workItemStore.Projects["ScrumStarain"];
            WorkItemType testCaseType = teamproject.WorkItemTypes["Test Case"];

            WorkItem testCase = new WorkItem(testCaseType)
            {
                Title="TestCaseApi2"
            };
            testCase.Fields["Microsoft.VSTS.TCM.Steps"].Value = "[previous sample value]";
            testCase.Save();

此外,您可以使用以下代码获取测试用例步长值:

var wit = workItemStore.GetWorkItem(408);
object stepValue = wit.Fields["Microsoft.VSTS.TCM.Steps"].Value;

休息API:Create a work item

Body样本:

[
  {
    "op": "add",
    "path": "/fields/System.Title",
    "value": "newTestcase"
  },
   {
    "op": "add",
    "path": "/fields/Microsoft.VSTS.TCM.Steps",
    "value": "<steps id=\"0\" last=\"4\"><step id=\"2\" type=\"ActionStep\"><parameterizedString isformatted=\"true\">&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;st&lt;B&gt;ep&lt;/B&gt;1&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;</parameterizedString><parameterizedString isformatted=\"true\">&lt;DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;</parameterizedString><description /></step><step id=\"3\" type=\"ActionStep\"><parameterizedString isformatted=\"true\">&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;st&lt;I&gt;ep&lt;/I&gt;2&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;</parameterizedString><parameterizedString isformatted=\"true\">&lt;DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;</parameterizedString><description /></step><step id=\"4\" type=\"ActionStep\"><parameterizedString isformatted=\"true\">&lt;DIV&gt;&lt;P&gt;&amp;nbsp;s&lt;U&gt;te&lt;/U&gt;p3&lt;/P&gt;&lt;/DIV&gt;</parameterizedString><parameterizedString isformatted=\"true\">&lt;DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;</parameterizedString><description /></step></steps>"
  }
]