从Azure DevOps获取C#应用程序的构建测试结果。

3
我正在使用ASP .NET Core编写程序,尝试获取特定构建定义中的测试运行。目前,我已经创建了一些方法,可以获取构建定义和该特定构建的所有夜间构建。现在,我想从提到的夜间构建中获取所有测试结果。

enter image description here

这个想法是获取所有测试的列表并对其进行一些统计。我正在使用以下库:

using Microsoft.TeamFoundation.Build.WebApi;
using Microsoft.TeamFoundation.Core.WebApi;
using Microsoft.TeamFoundation.TestManagement.WebApi;

我现在没有使用任何RestAPI查询。只使用所提到的库中的这些预设计方法(我知道它们在后台使用Rest服务),我希望我可以通过这些方法来完成它。有办法这样做吗?
感谢可能提供的解决方案。
1个回答

4
看起来你需要的是 TestManagementHttpClient 类的 GetTestResultsByBuildAsync 方法。它返回一个 ShallowTestCaseResult 实例列表,该列表包含有关每个测试运行的基本信息。你可以使用该列表中每个实体的 Id,并将其传递给 GetTestResultByIdAsync 方法,以获取有关测试结果的完整信息。

如果结果很多,您可能需要逐页获取。在这种情况下,请使用 GetTestResultsByBuildAsync2 方法(请注意方法名称末尾的数字 2)。它返回分页列表集合,其中包含 ContinuationToken 属性。

当您请求前 Top 个结果时,该属性将保存继续标记,以防仍有更多结果要返回。您应将该标记提供给后续调用。重复此过程,直到结果集合中的继续标记为 null。


1
你好 @Yan。GetTestResultsByBuildAsync() 只有 10000 条记录,而不是 54k。有没有办法获取所有记录?似乎缓冲区最大值设置为 10k。是否可能提高它?顺便说一下,感谢你的回答。 - Apuna12
1
@Apuna12 我已经更新了我的答案,并提供了有关获取分页结果所需使用的方法的信息。 - Yan Sklyarenko
使用 GetTestResultsByBuildAsync2 方法时,我遇到了身份验证错误。 我正在使用 Azure DevOps PAT,该令牌被限定为读取和执行构建以及读取和编写测试。 还需要其他什么吗? - Sunny-Dee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接