Как форматировать поля HTML для запросов рабочих элементов TFS/VSTS

Я пытаюсь использовать Team Foundation Server Power Tools (tfpt) для программного создания рабочих элементов. Мне нужно создать много тестовых случаев таким образом. К сожалению, электроинструменты в значительной степени не задокументированы, но я проследил их до последней оставшейся части. Мне нужно иметь возможность создавать тестовые шаги вместе с тестовым примером. Это делается с помощью поля с именем Steps=

Например: /fields: "Title=My Title;Steps="

Теперь, насколько я мог копать в проводнике полей, текст, который следует за шагами, должен быть «отформатирован в формате HTML». Но я понятия не имею, что такое определение Microsoft для HTML и какие теги должны быть для правильного обслуживания данных.

Любая помощь высоко ценится


person Shibumi    schedule 22.05.2017    source источник
comment
Кажется, что вы не можете сделать это с помощью инструмента tfpt.   -  person starian chen-MSFT    schedule 23.05.2017


Ответы (1)


Это обычное значение в формате HTML, например <div></div>, <B></B>. Подробное значение будет закодировано. Вы можете получить закодированное значение через онлайн-инструмент.

С другой стороны, есть дополнительная информация, указывающая действия шага теста, например: <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).

Код С#:

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: Создать рабочий элемент

Образец тела:

[
  {
    "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>"
  }
]
person starian chen-MSFT    schedule 23.05.2017
comment
ты БОЖЬЯ. Если есть что-то, что я могу сделать, чтобы отплатить вам, пожалуйста, дайте мне знать!! - person Shibumi; 23.05.2017