首页 > 解决方案 > Azure DevOps Pipelines:如何仅在“签入原因”而不重复时仅运行受影响的测试?

问题描述

我有一个构建过程,其中有几个测试任务。当它们全部运行时,其中一些可能会变得非常耗时,而且大多数时候,大多数测试都不是预期的。

不过,我希望所有这些测试都在预定的触发器上运行。

我知道我可以简单地克隆管道并使用一个用于仅对受影响的测试进行门控,另一个用于对所有测试进行调度,但作为 OO 开发人员,我不喜欢这样。

我已经尝试将复选框参数链接到流程变量并使用 PowerShell 对其进行修改,但未能使其正常工作(如何在 Azure 构建管道中使用 Powershell 修改流程变量)。

没有其他方法可以做到这一点吗?

标签: azure-devopsazure-pipelines

解决方案


您可以通过对您只想在计划构建期间运行的测试任务设置以下条件来执行此操作:

eq(variables['Build.Reason'], 'Schedule')

有关预定义变量的列表,请参见此处(搜索“Build.Reason”):

https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml

有关表达式的更多信息,请参见此处:

https://docs.microsoft.com/en-us/azure/devops/pipelines/process/expressions?view=azure-devops


推荐阅读