Как программно добавить / обновить индивидуальный результат для каждого шага теста в тестовом примере VSTS / TFS

Я могу обновить результат теста до testcase в VSTS через программу. Обновление результатов тестового примера

Теперь я хочу обновить результат каждого шага теста в тестовом примере. Не удалось найти никакой связанной информации. Пожалуйста помоги


person srinivas p    schedule 22.06.2017    source источник
comment
Вы решаете проблему с помощью моего решения?   -  person starian chen-MSFT    schedule 27.06.2017
comment
@ starain-MSFT - Извините за задержку обновления. мы попробовали ваше решение. Произошла ошибка Необработанное исключение TypeLoadException. Ошибка читается как Could not load type 'Microsoft.TeamFoundation.TFStringComparer' from assembly 'Microsoft.TeamFoundation.Common Есть предложения, пожалуйста?   -  person srinivas p    schedule 28.06.2017
comment
Вы используете пакет расширенного клиента Microsoft Team Foundation Server? А можно простой проект на OneDrive?   -  person starian chen-MSFT    schedule 28.06.2017
comment
Я использую клиент Microsoft Team Foundation Server 15.112.1 .   -  person srinivas p    schedule 28.06.2017
comment
Строка кода, в которой я обнаружил ошибку: ITestPlan _plan = _testproject.TestPlans.Find(123);   -  person srinivas p    schedule 28.06.2017
comment
Вместо этого используется расширенный клиент Microsoft Team Foundation Server. nuget.org/packages/   -  person starian chen-MSFT    schedule 28.06.2017
comment
Как добавить гиперссылку к тексту комментария?   -  person starian chen-MSFT    schedule 28.06.2017
comment
Поместите текст в [текст] и гиперссылку в (ссылку). Синтаксис: [Текст] (http: \\ google.com)   -  person srinivas p    schedule 28.06.2017


Ответы (1)


Самый простой способ - использовать клиентский API:

Простой образец:

int testpointid = 176;
            var u = new Uri("https://[account].visualstudio.com");
            VssCredentials c = new VssCredentials(new Microsoft.VisualStudio.Services.Common.VssBasicCredential(string.Empty, "[pat]"));
            TfsTeamProjectCollection _tfs = new TfsTeamProjectCollection(u, c);
            ITestManagementService test_service = (ITestManagementService)_tfs.GetService(typeof(ITestManagementService));
            ITestManagementTeamProject _testproject = test_service.GetTeamProject("scrum2015");
            ITestPlan _plan = _testproject.TestPlans.Find(115);
            ITestRun testRun = _plan.CreateTestRun(false);
            testRun.Title = "apiTest";
            ITestPoint point = _plan.FindTestPoint(testpointid);
            testRun.AddTestPoint(point, test_service.AuthorizedIdentity);
            testRun.Save();
            testRun.Refresh();
            ITestCaseResultCollection results = testRun.QueryResults();
            ITestIterationResult iterationResult;

            foreach (ITestCaseResult result in results)
            {
                iterationResult = result.CreateIteration(1);
                foreach (Microsoft.TeamFoundation.TestManagement.Client.ITestStep testStep in result.GetTestCase().Actions)
                {
                    ITestStepResult stepResult = iterationResult.CreateStepResult(testStep.Id);
                    stepResult.Outcome = Microsoft.TeamFoundation.TestManagement.Client.TestOutcome.Passed; //you can assign different states here
                    iterationResult.Actions.Add(stepResult);
                }
                iterationResult.Outcome = Microsoft.TeamFoundation.TestManagement.Client.TestOutcome.Passed;
                result.Iterations.Add(iterationResult);
                result.Outcome = Microsoft.TeamFoundation.TestManagement.Client.TestOutcome.Passed;
                result.State = TestResultState.Completed;
                result.Save(true);
            }
            testRun.State = Microsoft.TeamFoundation.TestManagement.Client.TestRunState.Completed;
            results.Save(true);

Что касается REST api, необходимая информация хранится в actionResults в iterationDetails (TestCaseResult.IterationDetails), вы можете попробовать указать IterationDetails для TestCaseResult и обновите результат теста.

Вы можете проверить детали результата теста, используя Получите результат теста с помощью DetailInclude (detailsToInclude = Iterations)

person starian chen-MSFT    schedule 23.06.2017
comment
Как просмотреть результаты отдельных шагов теста в тестовом примере? Я смог найти только окончательный результат тестового примера / тестового прогона в столбце результатов перечисленного набора тестов, но не смог найти результат теста каждого отдельного шага теста. - person srinivas p; 23.06.2017
comment
@srinivasp Множество способов получить результаты шага теста: 1. Как я уже сказал, использование Get a Test Result with DetailInclude 2. Доступ к Интернету, Test ›Runs› Enter the test run ›Go› Test results ›Дважды щелкните результат теста› Отметить подробности ›3. MTM, откройте MTM, подключитесь к TFS и выберите план тестирования› Тест ›Выполнить тесты› Выберите набор тестов ›Выберите точку тестирования› Нажмите «Просмотреть результаты» - person starian chen-MSFT; 23.06.2017
comment
Наконец, использование расширенного клиента Microsoft Team Foundation Server позволило устранить ошибку. Я могу обновить результат каждого шага теста в тестовом примере. - person srinivas p; 28.06.2017