Эталонное поле для результата теста в 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;