我一直试图在Azure管道过程中找到一种在远程服务器上运行集成测试的方法。在我的情况下,我们的管道在Azure中运行并部署到本地服务器。我想知道是否有办法将集成测试部署到同一服务器上并运行它们,并在同一过程中向Azure报告?
答案 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
。
通过在发布管道中添加VsTest任务或其他测试任务,在发布管道中运行测试。发布管道会将您的工件下载到文件夹$(System.DefaultWorkingDirectory)
。
Visual Studio Test任务和Dot NetCore CLI任务自动将测试结果发布到管道中,而诸如Ant,Maven,Gulp,Grunt,.NET Core和Xcode之类的任务将发布结果作为任务中的一个选项提供。此外,您可以使用任务。
以下是您可以参考的一些文章: