【问题标题】:Attach screenshot to Test Step Result (ITestStepResult) - VSTS将屏幕截图附加到测试步骤结果 (ITestStepResult) - VSTS
【发布时间】:2018-05-09 07:23:39
【问题描述】:

我能够创建一个新的测试运行并更新每个测试步骤的状态,最后完成自动测试运行。我已经使用 C# 库文件对 VSTS 执行所有这些操作。

另外,我目前正在将屏幕截图附加到测试步骤结果中。我可以看到该屏幕截图已附加到“运行”选项卡下的“测试步骤”,但上传未完成且无法看到已加载的屏幕截图。

以下是用于附加屏幕截图的代码:

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

Also please find the screenshot attached to understand my problem much better.

提前感谢您的帮助

【问题讨论】:

  • 你解决了这个问题吗?

标签: c# azure-devops msdn


【解决方案1】:

使用下面的代码,它将附件上传到测试步骤,当我检查测试结果时,图像显示不正确(和你一样),但一分钟后,它显示正确。因此,您现在可以检查图像是否正确显示。

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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    • 2019-08-16
    相关资源
    最近更新 更多