Прикрепить снимок экрана к результату шага теста (ITestStepResult) - VSTS - PullRequest
0 голосов
/ 09 мая 2018

Я могу создать новый тестовый прогон, обновить статус каждого шага теста и, наконец, выполнить автоматический запуск теста. Я использовал файлы библиотеки C #, чтобы сделать все это для VSTS.

Также я сейчас работаю над прикреплением скриншота к результату шага теста. Я вижу, что этот скриншот был прикреплен к шагу теста на вкладке «Выполнить», но загрузка не была завершена, и я не смог увидеть загружаемый скриншот.

Ниже приведен код, используемый для прикрепления скриншота:

ITestAttachment attachment = stepResult.CreateAttachment(screenShotPath);
stepResult.Attachments.Add(attachment);

Также, пожалуйста, найдите прикрепленный скриншот, чтобы лучше понять мою проблему.

Заранее спасибо за помощь

1 Ответ

0 голосов
/ 10 мая 2018

С помощью приведенного ниже кода он загружает вложение на шаг теста. Когда я проверяю результат теста, изображение отображается неправильно (так же, как вы), но через минуту оно отображается правильно. Таким образом, вы можете проверить, правильно ли отображается изображение.

int testpointid = 56;
            var u = new Uri("https://XXX.visualstudio.com");
            var c = new VssClientCredentials();
            c.Storage = new VssClientCredentialStorage(storageKind: "VssApp", storageNamespace: "VisualStudio");
            TfsTeamProjectCollection _tfs = new TfsTeamProjectCollection(u, c);
            _tfs.EnsureAuthenticated();
            ITestManagementService test_service = (ITestManagementService)_tfs.GetService(typeof(ITestManagementService));
            ITestManagementTeamProject _testproject = test_service.GetTeamProject("{proejct}");
            ITestPlan _plan = _testproject.TestPlans.Find(89);
            ITestRun testRun = _plan.CreateTestRun(false);
            testRun.Title = "apiTest2";
            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
                    Microsoft.TeamFoundation.TestManagement.Client.ITestAttachment attachment = stepResult.CreateAttachment(@"{image path}");

                    stepResult.Attachments.Add(attachment);
                    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);
...