【发布时间】:2021-01-31 00:00:30
【问题描述】:
我一直在尝试寻找一种在 Azure 管道过程中在远程服务器上运行集成测试的方法。在我的情况下,我们在 Azure 中运行管道并部署到本地服务器。我想知道是否有一种方法可以将集成测试也部署到同一台服务器并运行它们并在同一进程中向 Azure 报告?
【问题讨论】:
标签: azure azure-devops azure-pipelines
我一直在尝试寻找一种在 Azure 管道过程中在远程服务器上运行集成测试的方法。在我的情况下,我们在 Azure 中运行管道并部署到本地服务器。我想知道是否有一种方法可以将集成测试也部署到同一台服务器并运行它们并在同一进程中向 Azure 报告?
【问题讨论】:
标签: azure azure-devops azure-pipelines
好问题。例如,如果您的集成基础架构位于合作防火墙之后,就会出现这种情况。
一种解决方案是在该集成基础架构上使用自托管代理。
另一种直接的方法是将集成测试 scp 到集成基础架构,然后 ssh 运行它们,然后 scp 将测试结果返回。 scp 和 ssh 都有流水线任务。
请注意,这些替代方案中的通信是相反的,即Hosted Agend calls Pipeline 和Pipeline calls Infrastructure。您的公司安全可能更喜欢其中一种。
【讨论】:
您可以使用self-host agent 来运行您的管道。由于 Azure 代理无法与您的 localDB 通信,因此您可以在本地计算机上设置自托管代理。您的 localDB 可以访问自托管代理。
为了在您的发布管道中运行集成测试。您可以在构建管道中发布的工件中包含您的测试项目或测试程序集 dll 文件。以便发布管道中的测试任务可以访问您的集成测试项目。
在工件中包含您的测试文件。您可以在构建管道中添加第二个publish build artifacts 任务。将 Path to publish 指定为测试文件的位置。
通过在发布管道中添加 VsTest 任务或其他测试任务在发布管道中运行测试。发布管道会将您的工件下载到文件夹 $(System.DefaultWorkingDirectory)。
Visual Studio 测试任务和 Dot NetCore CLI 任务自动将测试结果发布到管道,而 Ant、Maven、Gulp、Grunt、.NET Core 和 Xcode 等任务在任务中提供发布结果作为选项。此外,您可以使用Publish Test Results 任务。
这里有一些你可以参考的文章:
【讨论】: