Azure devops Azure DevOps管道:如何仅在原因为签入时运行受影响的测试而不进行复制?

Azure devops Azure DevOps管道:如何仅在原因为签入时运行受影响的测试而不进行复制?,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我有一个构建过程,其中有两个测试任务。当它们全部运行时,其中一些可能会变得相当耗时,而且大多数情况下,大多数测试都不是预期的 尽管如此,我还是希望所有这些测试都在预定的触发器上运行 我知道我可以简单地克隆管道,使用一个只对受影响的测试进行选通,另一个对所有测试进行调度,但作为一个OO开发人员,我不喜欢这样 我已经尝试将checkbox参数链接到流程变量,并使用PowerShell对其进行修改,但未能使其正常工作() 没有其他方法可以做到这一点吗?您可以通过在只希望在计划生成期间运行的测试任务上设

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

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

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

我已经尝试将checkbox参数链接到流程变量,并使用PowerShell对其进行修改,但未能使其正常工作()


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

您可以通过在只希望在计划生成期间运行的测试任务上设置以下内容来做到这一点:

eq(变量['Build.Reason'],'Schedule')

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

有关表达式的详细信息,请参见此处:


问题是,这意味着重复测试任务,让一个在签入时运行受影响的测试,另一个在其他方面运行所有测试。我在寻找一个没有重复的解决方案。我想我有点不清楚你对实现什么感兴趣。你可以考虑做测试。这样,您就可以通过一个简单的
-template:/path/to/test steps.yml
重复使用这些步骤。因为测试步骤是作为模板捕获的,所以您不需要在单个管道中重复太多内容。上面提到的中提供了一些解决方案。你可以去看看。