【发布时间】:2017-06-12 09:21:49
【问题描述】:
我有这个任务的 API 链接
POST https://{instance}/DefaultCollection/{project}/_apis/test/runs/{run}/results?api-version={version}
https://www.visualstudio.com/en-us/docs/integrate/api/test/results#add-test-results-to-a-test-run
我需要程序通过API方式来做。
替代方案,我尝试过以下程序
public void GetResult()
{
var u = new Uri("https://{UserAccount}.visualstudio.com");
VssCredentials c = new VssCredentials(new Microsoft.VisualStudio.Services.Common.VssBasicCredential(string.Empty, "MyPAT"));
var connection = new VssConnection(u, c);
var testClient = connection.GetClient<TestManagementHttpClient>();
int testpointid = 100;
string teamProject = "Project12345";
RunCreateModel run = new RunCreateModel(name: "APIRun7", plan: new Microsoft.TeamFoundation.TestManagement.WebApi.ShallowReference("100"), pointIds: new int[] { testpointid });
TestRun testrun = testClient.CreateTestRunAsync(run, teamProject).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(runmodel ,teamProject, testrun.Id, runmodel).Result;
}
我得到了错误:
无法从“Microsoft.TeamFoundation.TestManagement.WebApi.TestCaseResultUpdateModel[]”转换 到 'Microsoft.TeamFoundation.TestManagement.WebApi.TestCaseResult[]'
【问题讨论】:
-
你使用的是 15.0 包,所以修改代码如下:TestCaseResult caseResult = new TestCaseResult() { State = "Completed", Outcome = "passed", Id = 100000 }; var testResults = testClient.UpdateTestResultsAsync(new TestCaseResult[] { caseResult }, teamProject, testrun.Id).Result;
-
删除 TestCaseResultUpdateModel testCaseUpdate = new TestCaseResultUpdateModel() { State = "Completed", Outcome = "Passed", TestResult = new Microsoft.TeamFoundation.TestManagement.WebApi.ShallowReference("100000") };跨度>
-
@starian - 我已根据您的建议修改了代码。我遇到了 AggregateException 错误。我们的代码仍然失败:-(我添加了 try catch(AggregateException) 并且执行进入了 catch 块。
-
如何获取测试点id?使用这个 rest api 来获取测试点 id visualstudio.com/en-us/docs/integrate/api/test/….
-
它们是不同的。参考这些线程来创建测试计划,测试套件:stackoverflow.com/questions/44561306/…
标签: c# azure-devops azure-devops-rest-api