【问题标题】:TFS build publish test results TRX via REST API & PowerShellTFS 构建通过 REST API 和 PowerShell 发布测试结果 TRX
【发布时间】:2021-02-10 00:30:21
【问题描述】:

我有一个包含异步远程功能测试执行的 TFS 构建过程。当测试完成执行后,我想在原始构建摘要中发布生成的 TRX 文件并更新构建状态(如果需要)。

我已经搜索了一段时间,但至今未能准确找到我正在寻找的内容:是否可以通过 PowerShell 脚本化 REST API 调用将 TRX 文件发布到构建摘要?

【问题讨论】:

  • 那么,构建完成了,但您想在之后添加摘要并更改状态吗?你有什么理由不阻止测试完成?什么版本的 tfs?
  • 尝试异步执行远程功能测试,以加快构建速度并减少构建代理的拥塞。
  • API 版本 3.2,TFS 2017
  • 你能描述一下运行测试的远程部分吗?你是如何触发这些的?
  • 进程从远程服务器上的 PowerShell 脚本启动 VsTest.console.exe。我的计划是添加脚本功能以在我的测试执行脚本结束时更新构建,具体取决于测试结果。

标签: powershell rest tfs build trx


【解决方案1】:

恐怕没有可用于将TRX文件发布到构建摘要页面的rest api。

在管道执行期间,任务使用 trx 文件并读取测试结果以生成您在构建摘要页面上看到的报告。所以即使你后来成功上传了 trx 文件,trx 文件也不会被处理,并且你无法在构建摘要页面上获得测试报告。

如果您的管道等待测试执行完成,您可以尝试使用脚本将生成的 TRX 文件复制回本地代理计算机并通过发布测试结果任务发布。

如果管道在测试执行完成之前完成。您可以创建新管道以发布 trx 文件作为解决方法。但这最终会在不同的管道构建摘要页面中显示测试结果。如果您可以接受,您可以将 trx 文件复制回本地代理机器并通过Build Queuerest api 触发新管道。您还可以考虑将 trx 文件发布到 git repo 并将此 git repo 作为 git 源添加到新管道。

【讨论】:

  • 好的,明白了;没有用于追溯发布 TRX 结果文件的 API。这里的全部目的是异步执行远程功能测试,以减少构建执行时间,从而减少构建代理的拥塞。我想在这种情况下我可以考虑几种解决方法: - 在测试失败的情况下将构建结果更新为“失败” - 添加指向 TRX 文件位置(某种类型的存储库)的链接以构建日志。
  • 此处未提及,但我很确定构建完成后构建状态是不可变的。我认为即使它们的一部分也行不通。
  • 感谢您的回复。根据此处的 TFS 2017 文档docs.microsoft.com/en-us/azure/devops/integrate/previous-apis/…,一旦构建完成,构建状态确实是不可变的。关于构建结果,没有提到无法更新...
猜你喜欢
  • 2019-06-23
  • 2016-05-04
  • 2018-03-03
  • 2013-04-12
  • 1970-01-01
  • 2018-07-22
  • 2018-10-05
  • 2014-12-12
  • 2023-03-03
相关资源
最近更新 更多