如何测试Azure管道

时间:2019-11-20 09:40:52

标签: azure unit-testing azure-devops yaml

是否有可能测试创建的Azure管道?是从UI还是您的yaml管道定义?

这意味着我有一些Yamls管道或从UI定义的管道,我想通过一些测试(例如Unit Tests e.x.)来确保所有定义的变量,构建,测试和打包零件或每个管道中的其他东西。

在对管道进行一些更改之后,或者在需要时添加一些新的存储库/分支之后,请验证管道配置。

谢谢...

1 个答案:

答案 0 :(得分:1)

  

是否有可能测试创建的Azure管道?从用户界面或您的   yaml管道的定义?

如果您想使用开箱即用的功能来实现此目的,很遗憾地说,不,还没有。

但是,解决方法是使用 API 进行检查。

  • 客户端API。

您可以编写一个简单的脚本来使用Client API获取Builds定义。

在这个简单的脚本中,您首先获得整个定义:

List<BuildDefinitionReference> buildDefinitions = new List<BuildDefinitionReference>();

然后,您可以使用脚本将自定义的检查/测试应用于此定义。一句话,编写一些测试类/方法。脚本完成后,可以将其导入VSTS,然后使用task运行这些测试部分。仅此测试成功,然后您的构建才能执行。

因此,此时,您需要在管道中添加2个代理作业,第一个用于运行脚本测试(名称 test agent job )。第二个座席工作就是您要检查的工作。在第二个代理作业中,将其条件设置为:

enter image description here

这时,只有测试成功,才能运行当前作业。

或者,如果您不希望由于测试而破坏要检查的构建,请考虑使用构建完成触发器。设置单独的管道以运行测试。在您要检查的管道中,将其设置为仅在测试管道完成时才能运行。

enter image description here


  • Rest API

您可以将rest api与powershell一起使用,与上面的描述非常相似。使用api获取构建定义,然后编写一些check powershell脚本。


我还建议您将测试放在单独的管道中。然后,API只能获取您要检查的部分,而不包括测试部分。