当所有测试用例都通过远程powershell作业运行时,如何在同一azure构建管道中发布vs测试结果

当所有测试用例都通过远程powershell作业运行时,如何在同一azure构建管道中发布vs测试结果,azure,azure-devops,azure-pipelines,Azure,Azure Devops,Azure Pipelines,如果azure devops build pipeline中已经提供了该流程,有人可以指导我完成该流程吗? 我想完成以下任务: 通过远程powershell在azure windows VM上运行测试用例。(完成和完成) 通过vstest.console成功运行测试脚本后生成测试文件(例如.trx)(完成和完成) 在repo中构建或发布测试结果文件,或者以某种方式将结果包含在要发布的管道中。(卡在此步骤中) 我已经完成的是我可以将结果推回到存储库并在新的管道中发布,这个过程可以吗,或者有其他方法

如果azure devops build pipeline中已经提供了该流程,有人可以指导我完成该流程吗?
我想完成以下任务:

  • 通过远程powershell在azure windows VM上运行测试用例。(完成和完成)
  • 通过vstest.console成功运行测试脚本后生成测试文件(例如.trx)(完成和完成)
  • 在repo中构建或发布测试结果文件,或者以某种方式将结果包含在要发布的管道中。(卡在此步骤中)
  • 我已经完成的是我可以将结果推回到存储库并在新的管道中发布,这个过程可以吗,或者有其他方法来完成相同的任务?如果我将trx推送到存储库,则会因为repo中的更改而触发一个新的构建,因此,即使使用一些自定义CI触发规则(这些规则可以排除trx文件以实现自动化),这样做也不是正确的或标准的方法


    长问题短:1。如果软件在VM上部署和测试(通过远程powershell),如何发布同一生成事件的测试结果?

    更新:

    因为复制任务不起作用。有一种变通方法可以将测试结果从azure vm移动到azure构建代理

    您可以创建一个服务器()并将测试结果上载到web服务器(使用kudu api)

    然后,您可以添加一个powershell任务来调用kudu api,将测试结果下载到azure代理。请查看完整的脚本示例,以及有关kudu api的更多信息


    在构建管道中,您可以添加一个远程复制任务(或通过SSH复制文件任务),将测试结果文件从VM复制到代理上的(例如
    $(Agent.BuildDirectory)\TestResults
    )。例如下面的例子

    您需要复制所有生成的结果文件

    然后您需要添加一个来发布测试结果

    在执行发布测试结果任务时,您很可能会遇到以下警告,即.log,.html未找到

    发生上述警告的原因是,当您将测试结果文件从远程vm复制到代理时,这些文件的路径会更改。您需要将trx文件中的文件路径更改为其在代理中的正确位置($(Agent.BuildDirectory)\TestResults)

    您可以将trx文件中的文件路径替换为

    我在上述步骤中使用的任务如下所示

    如果以上所有步骤都设置正确,则在构建运行完成后,您将在测试选项卡中看到测试结果


    我最近回答了(或重新发布了某人的旧答案)一个类似的问题,请检查这是否有帮助:您好@devOps_7您有机会查看下面的答案吗?进展如何,如果有任何问题,请告诉我。如果是“通过SSH复制文件”,源文件夹必须是通过预定义变量进行管道传输的可用文件夹之一,并且不会扫描远程pc,而如果是“远程复制”作业,两个文件夹必须位于同一台远程pc或两台不同的远程pc中,但是,如果您无法访问要设置为“目标文件夹”的发布管道中的文件夹,则有一个解决方法,您可以创建azure web app服务并使用kudu api将测试结果上载到web app服务器,然后使用kudu api将文件下载到您的代理。我更新了下面的答案。