Эталонное поле для результата теста в vso rest api

У нас есть тестовые случаи в VSTS в рамках нашего проекта. Мы используем rest Api для получения подробностей тестового примера и пытаемся обновить результат тестового примера как pass или же fail основанный на некотором условии, но не в состоянии найти контрольное поле для результата. Ниже мой код:

var collectionUri = "https://microsoft.visualstudio.com/DefaultCollection";

VssBasicCredential _credentials = new VssBasicCredential("", "<PATToken>");

// create workitemtracking client
var _witClient = new WorkItemTrackingHttpClient(new Uri(collectionUri), _credentials);


// get Test Case using all relations
var testCaseObject = _witClient.GetWorkItemAsync(<testcaseid>, null, null, WorkItemExpand.Relations).Result;

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

1 ответ

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

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

Простой пример:

 var u = new Uri("https://[account].visualstudio.com");
 VssCredentials c = new VssCredentials(new Microsoft.VisualStudio.Services.Common.VssBasicCredential(string.Empty, "[pat]"));
 var connection = new VssConnection(u, c);
var testClient = connection.GetClient<TestManagementHttpClient>();
 int testpointid = 158;
 string teamProject = "scrum2015";
RunCreateModel run = new RunCreateModel(name:"APIRun7",plan:new Microsoft.TeamFoundation.TestManagement.WebApi.ShallowReference("232"),pointIds:new int[] { testpointid });
TestRun testrun = testClient.CreateTestRunAsync(teamProject, run).Result;
TestCaseResultUpdateModel testCaseUpdate = new TestCaseResultUpdateModel() { State="Completed", Outcome="Passed", TestResult=new Microsoft.TeamFoundation.TestManagement.WebApi.ShallowReference("100000") };
var testResults = testClient.UpdateTestResultsAsync(new TestCaseResultUpdateModel[] { testCaseUpdate }, teamProject, testrun.Id).Result;
RunUpdateModel runmodel = new RunUpdateModel(state: "Completed");
TestRun testRunResult= testClient.UpdateTestRunAsync(teamProject, testrun.Id, runmodel).Result;
Другие вопросы по тегам