在远程服务器上运行集成测试

时间:2020-10-16 12:53:15

标签: azure azure-devops azure-pipelines

我一直试图在Azure管道过程中找到一种在远程服务器上运行集成测试的方法。在我的情况下,我们的管道在Azure中运行并部署到本地服务器。我想知道是否有办法将集成测试部署到同一服务器上并运行它们,并在同一过程中向Azure报告?

2 个答案:

答案 0 :(得分:0)

好问题。例如,如果您的集成基础结构位于合作防火墙之后,就会出现这种情况。

一种解决方案是在该高度集成的基础结构上使用自托管代理

另一种简单的方法是将集成测试放到集成基础架构中,然后ssh运行它们,然后将测试结果放回去。 scp和ssh都有管道任务。

请注意,这些替代方案中的通信是相反的,即let seconds = 0.1 DispatchQueue.main.asyncAfter(deadline: .now() + seconds) { //Put your code which should be executed with a delay here try? self.viewContext.save() print("Saved") } Hosted Agend calls Pipeline。您的公司安全性可能会比另一个更喜欢。

答案 1 :(得分:0)

您可以使用www.myDomain.com运行管道。由于Azure代理无法与localDB通信,因此可以在本地计算机上设置自托管代理。自托管代理可以访问localDB。

为了在您的发布管道中运行集成测试。您可以在构建管道中发布的工件中包含您的Test项目或Test Assembly dll文件。这样您的集成测试项目就可以访问发布管道中的测试任务。

将测试文件包括在工件中。您可以在构建管道中添加第二个publish build artifacts任务。在测试文件的位置指定Path to publish

self-host agent

通过在发布管道中添加VsTest任务或其他测试任务,在发布管道中运行测试。发布管道会将您的工件下载到文件夹$(System.DefaultWorkingDirectory)

enter image description here

Visual Studio Test任务和Dot NetCore CLI任务自动将测试结果发布到管道中,而诸如Ant,Maven,Gulp,Grunt,.NET Core和Xcode之类的任务将发布结果作为任务中的一个选项提供。此外,您可以使用enter image description here任务。

以下是您可以参考的一些文章: