【问题标题】:How to test Azure Pipelines如何测试 Azure 管道
【发布时间】:2019-11-20 09:40:52
【问题描述】:

是否有可能测试创建的 Azure Pipelines?来自 UI 或您的 yaml 管道定义?

意味着我有一些 yamls 管道或从 UI 定义的管道,我想通过一些测试(例如单元测试)确保在每个管道中都定义了变量、构建、测试和打包部件或其他东西。

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

谢谢...

【问题讨论】:

  • 创建一个新分支,在那里运行管道。
  • 谢谢,@ShaykiAbramczyk,但我想要一些像单元测试这样的检查器,并确保没有其他人删除或禁用管道的某些重要部分。
  • 所以一个分支策略到这个分支,没有人可以推动他,除非你。
  • 据我所知,没有任何单元测试脚本可以实现这一点。还有另一种解决方法可以实现这一点,但它可能无法满足您的要求。此外,实现起来并不复杂。这可能会使您的管道变得庞大,可以吗?

标签: azure unit-testing azure-devops yaml


【解决方案1】:

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

如果您想要一个开箱即用的功能来实现这一点,很抱歉,不,没有。

但是,解决方法是使用 API 来检查它们。

  • 客户端 API。

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

在这个简单的脚本中,你首先得到完整的定义:

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

然后您可以使用脚本将自定义检查/测试应用到此定义中。一言以蔽之,写一些测试类/方法。脚本完成后,您可以将其导入 VSTS,然后使用任务运行这些测试部分。只有这个测试成功,然后你的构建才能被执行。

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

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

或者,如果您不希望要检查的构建因测试而被破坏,请考虑使用构建完成触发器。设置一个单独的管道来运行测试。在您要检查的管道中,设置它只能在测试管道完成时运行。


  • Rest API

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


我更建议您将测试放在单独的管道中。那么API只能获取你要检查的部分,不包括测试部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多