Как перенести тестовые наборы MTM из TFS 2013 в VSTS?

У нас есть наследие тысяч руководствТестовые случаи созданный в Microsoft Test Manager в нашем офисеTFS 2013.

Мы пытаемся переместить их вVSTS и это оказалось трудным.

Я.

Насколько я вижу, на данный момент нет официального инструмента миграции от Microsoft, хотя они работают надодин для полной миграции данных

II.

Мы попробовали несколько сторонних инструментов:

OpsHub - бесплатная версия имеет ограничение в 2500, которое мы превышаем, и мы не можем оправдать стоимость коммерческой версии в 5 000 долларовИнструменты интеграции TFS - похоже, не переносит тестовые случаи вообще (документация по ссылке подтверждает это)MTMCopyTool - не похоже на перенесенные шаги тестовых случаев, оставляет их пустымиIII.

Мы также попытались экспортировать-импортировать TFS \ VSTS Query в Excel. Который, кажется, тоже экспортирует шаги, но все они объединены в одном поле, между ними нет даже символа новой строки, что делает его довольно грязным.

Внутривенно

Мы также попытались использовать инструмент третьей части для экспорта-импорта через Excel:

экспортировать:https://tfstestcaseexporttoexcel.codeplex.com/ - кажется, экспортировать все хорошо, в том числе шаги! Не уверен, как импортировать этот файл, хотя в VSTSимпортировать:Тест Кейс Мигратор Плюс просто зависает на моей машине, хотя исходный код доступен, поэтому, возможно, я попытаюсь поиграть с ним
 jessehouwing03 окт. 2016 г., 19:45
Один полный инструмент миграции принимает предварительный просмотр клиентов. Вам может потребоваться связаться со службой поддержки или партнером ALM, чтобы помочь вам войти в список.
 jessehouwing03 окт. 2016 г., 19:45
Я бы не стал ничего больше пробовать в данный момент.
 starian chen-MSFT13 окт. 2016 г., 13:49
Вы решаете эту проблему с ответом aforcina?

Ответы на вопрос(1)

Из центра тестирования в вашем локальном веб-доступе создайте план тестирования, включающий все тестовые наборы, а затем переключитесь в представление сетки на главной панели. Там вы можете выбрать и скопировать все тестовые наборы (включая шаги, ожидаемые результаты и другие поля тестового набора) и вставить их в эквивалентное представление в проекте VSTS.

Создайте сценарий powershell, который получает все контрольные примеры из локальной TFS и копирует их в VSTS. Ниже вы можете найти фрагмент. Предостережение: я не проверял это широко, поэтому применяются обычные заявления об отказе от ответственности. Пожалуйста, добавьте дополнительные поля, которые вы можете скопировать.

$VerbosePreference = "Continue"

$tfsSource="the collection url that you want to copy form (eg. http://yourserver/tfs/yourcollection)";
$tpSource="the team project containing the test cases you want to copy form";

$tfsDest="the collection url that you want to copy to (eg. https://youraccount.visualstudio.com/DefaultCollection");
$tpDest="the team project containing the test cases you want to copy to";


[Reflection.Assembly]::LoadWithPartialName(‘Microsoft.TeamFoundation.Client’)
[Reflection.Assembly]::LoadWithPartialName(‘Microsoft.TeamFoundation.TestManagement.Client’)
[Reflection.Assembly]::LoadFile("C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies\Newtonsoft.Json.dll")

$sourceTpc = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($tfsSource)
$sourceTcm = $sourceTpc.GetService([Microsoft.TeamFoundation.TestManagement.Client.ITestManagementService])
$sourceProject = $sourceTcm.GetTeamProject($tpSource);
$sourceTestCases = $sourceProject.TestCases.Query(“SELECT * FROM WorkItem”);

$destTpc= [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($tfsDest)
$destTcm = $destTpc.GetService([Microsoft.TeamFoundation.TestManagement.Client.ITestManagementService])
$destProject = $destTcm.GetTeamProject($tpDest);


foreach ($tc in $sourceTestCases)
{
    Write-Verbose ("Copying Test Case {0} - {1}" -f $tc.Id, $tc.Title)
    $destTestCase= $destProject.TestCases.Create();
    $destTestCase.Title = $tc.Title;
    $destTestCase.Priority = $tc.Priority;

    foreach ($step in $tc.Actions)
    {
        $destStep= $destTestCase.CreateTestStep();

        $destStep.Title= $step.Title
        $destStep.TestStepType= $step.TestStepType
        $destStep.Description= $step.Description
        $destStep.ExpectedResult=  $step.ExpectedResult;
        $destTestCase.Actions.Add($destStep);
    }
    $destTestCase.Save();
}
 Ivan08 окт. 2016 г., 09:00
Спасибо. Работаем над этим, чтобы перейти с полной иерархией планов тестирования и наборов тестов.
 Ivan05 окт. 2016 г., 12:22
Попробую сегодня, спасибо!
 Ivan05 окт. 2016 г., 20:44
Сценарий работает, все еще играет с ним. Просто быстрый вопрос - есть ли необходимость в Newtonsoft.Json.dll, которую вы загружаете?
 aforcina06 окт. 2016 г., 12:17
Да, очевидно, NewtonSoft.Json нужен новым API TFS, потому что метод Save не будет работать, если вы его не загрузите. Я проверил мой сценарий миграции с локального 2015.3 TFS на мою личную учетную запись VSTS.
 Ivan04 окт. 2016 г., 14:03
Спасибо за идеи. Пробовал 1-й и кажется, что Grid ограничен только 20 тестами, есть ли способ показать все?
 aforcina04 окт. 2016 г., 23:36
Я добавил фрагмент кода powershell в ответе выше.
 aforcina04 окт. 2016 г., 18:50
Мне удалось скопировать / вставить 25, так что может быть ограничение на общий размер буфера обмена. Я не нашел документации по этому пределу, это выглядит как внутреннее ограничение. Так что если вы идете по этому пути, вы должны сделать несколько копий / вставок ... Я чувствую вашу боль ...
 aforcina07 окт. 2016 г., 20:24
Большой! Пожалуйста отметьте как ответ мой пост, если он вам помог. Благодарю.
 Ivan06 окт. 2016 г., 15:41
Интересно, что у меня это работало без импорта Newtonsoft.Json.dll

Ваш ответ на вопрос