Как обновить результаты теста в TFS для конкретного теста в наборе тестов.Все тестовые примеры не должны быть помечены как выполняющиеся в наборе в C # - PullRequest
0 голосов
/ 28 сентября 2019

Я применил подход к результату теста обновления udpdate в tfs, использующем API после выполнения тестового примера, но он делает все остальные состояния тестового набора как незавершенные в тестовом наборе.

Он обновляет результаты тестового набора в наборе тестов, но также создает остальную часть тестового примера, как в процессе выполнения, который находится в наборе тестов.

ITestCaseResult result = run.QueryResults().FirstOrDefault(r => r.TestCaseId == testCase.Id);
if (result != null)
{

    testRun.Title = testCase.Title;
    result.ComputerName = Environment.MachineName;
    result.Outcome = TestOutcome.Passed;
    result.Comment = comments;
    result.RunBy = testRun.Owner;
    result.State = TestResultState.Completed;
    result.Save();
}

Я ожидаю,Обновление результатов должно быть сделано для конкретного идентификатора тестового набора, который я передаю во время выполнения, и оставшийся статус тестового набора не должен изменяться в наборе тестов.

1 Ответ

0 голосов
/ 30 сентября 2019

Без полного кода не уверен, какая часть является основной причиной, но это может быть связано с if (result != null), условные операторы влияют на результат.

Пожалуйста, попробуйте использовать приведенный ниже пример кода, чтобы справиться с этим.

publicstaticvoidUpdateResult()
        {

            TfsTeamProjectCollectiontfs = newTfsTeamProjectCollection(TfsTeamProjectCollection.GetFullyQualifiedUriForName(server));
            ITestManagementServicetms = tfs.GetService<ITestManagementService>();
            ITestManagementTeamProjectproj = tms.GetTeamProject(project);
            ITestPlanPlan = proj.TestPlans.Find(1);
IStaticTestSuitesuite = Plan.RootSuite.SubSuites.Where(s => s.Id == 1339).First() asIStaticTestSuite;
            ITestCasetestcase = null;
            testcase = suite.Entries.Where(e => e.Title == "login").First().TestCase;
            ITestRuntestRun = project.TestRuns.Create();
            testRun = Plan.CreateTestRun(false); 

            ITestPointCollectionpoints = Plan.QueryTestPoints("SELECT * FROM TestPoint WHERE TestCaseId ="+ testcase.Id);
            foreach(ITestPointp inpoints)
            {

                testRun.AddTestPoint(p, Plan.Owner);// null);
                //testRun.AddTestPoint(p, null);

            }
            testRun.State = TestRunState.Completed;
            testRun.Save();

            ITestCaseResultCollectionresults = testRun.QueryResults();
            ITestIterationResultiterationResult;
            foreach(ITestCaseResultresult inresults)
            {
                iterationResult = result.CreateIteration(1);
                foreach(ITestSteptestStep inresult.GetTestCase().Actions)
                {
                    ITestStepResultstepResult = iterationResult.CreateStepResult(testStep.Id);
                    stepResult.Outcome = TestOutcome.Passed;                        
                    iterationResult.Actions.Add(stepResult);

                }
                iterationResult.Outcome = TestOutcome.Passed;
                result.Iterations.Add(iterationResult);
                result.Outcome = TestOutcome.Passed;
                result.State = TestResultState.Completed;
                result.Save(true);

            }
            testRun.Save();
            testRun.Refresh();

        }

Подробнее смотрите на этот похожий вопрос здесь: Изменение поля результатов тестовых случаев в наборе тестов в Tfs

...