C# 如何在C中通过发布ID从TFS获取测试结果
我无法找到一种方法来获得C中给定版本的测试结果 我之前做的是,通过构建ID获取测试结果 下面是一个示例代码C# 如何在C中通过发布ID从TFS获取测试结果,c#,.net,tfs,azure-devops,tfs-sdk,C#,.net,Tfs,Azure Devops,Tfs Sdk,我无法找到一种方法来获得C中给定版本的测试结果 我之前做的是,通过构建ID获取测试结果 下面是一个示例代码 int buildId = 123; const string TFS_url = "<TFS_URL>"; string projectname = "<Teamname>"; TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(new Uri(TFS_url)); //
int buildId = 123;
const string TFS_url = "<TFS_URL>";
string projectname = "<Teamname>";
TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(new Uri(TFS_url));
// Get build information
BuildHttpClient bhc = ttpc.GetClient<BuildHttpClient>();
// Get testrun for the build
TestManagementHttpClient ithc = ttpc.GetClient<TestManagementHttpClient>();
QueryModel qm = new QueryModel("Select * From TestRun Where BuildNumber Contains '" + buildId + "'");
List<TestRun> testruns = ithc.GetTestRunsByQueryAsync(qm, projectname).Result;
List<List<TestCaseResult>> allTestresults = new List<List<TestCaseResult>>();
foreach (TestRun testrun in testruns)
{
List<TestCaseResult> testresults = ithc.GetTestResultsAsync(projectname, testrun.Id).Result;
allTestresults.Add(testresults);
}
我更喜欢在C中使用给定的类,而不必通过API来实现。构建/发布的测试结果存储在测试运行中,因此您只需要首先获取构建/发布的测试运行,然后从测试运行中检索测试结果 您可以从特定版本的测试日志中获取测试运行id 因此,最简单的方法是使用RESTAPI从日志中获取特定的测试运行id
GET https://{instance}/{project}/_apis/release/releases/{releaseId}/environments/{environmentId}/deployPhases/{releaseDeployPhaseId}/tasks/{taskId}/logs?api-version={version}
有关详细信息,请参阅
然后通过测试运行ID获取测试结果的详细信息。与构建的共享代码示例类似 感谢RESTAPI链接,我可以使用它。因此,没有一种方法可以像Microsoft.TeamFoundationServer.Client?Hi-Jteve_Sobs这样使用来自Microsoft的NuGet软件包,通过公共REST API提供对发布服务的访问。它实际上仍在使用RESTAPI调用。对于完整的软件包,您可以在此处查看我们的官方文档: