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

时间:2017-05-22 21:49:45

标签: powershell tfs azure-devops tfs-power-tools azure-devops-rest-api

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

的字段完成的

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

现在我在野外资源管理器中尽可能地挖掘,后续步骤的文本必须是" HTML格式化"但我不知道微软对HTML的定义是什么以及标签应该是什么才能正确地提供数据。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:2)

这是一般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> 

enter image description here

我建议您使用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;

Rest API:Create a work item

身体样本:

[
  {
    "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>"
  }
]