Azure DevOps管道:仅当“原因”为“签入”而不重复时,如何仅运行受影响的测试?

时间:2019-11-05 16:04:23

标签: azure-devops azure-pipelines

我有一个构建过程,其中有几个测试任务。当它们全部运行时,其中一些可能会变得非常耗时,并且在大多数情况下,大多数测试是无法预期的。

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

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

我已经尝试将checkbox参数链接到过程变量并使用PowerShell对其进行修改,但无法使其正常工作(How can I modify a process variable using Powershell in a Azure build pipeline)。

没有其他方法吗?

1 个答案:

答案 0 :(得分:0)

您可以通过在只希望在计划的构建过程中运行的测试任务上设置以下condition来做到这一点:

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