0

我们有一个带有 Azure Devops 2019 的本地 TFVC 设置。我正在构建一个 C++ 库并设置了一个运行良好的多配置构建(调试、发布)。但是,我只想在构建发布配置时运行一组单元测试。我添加了一个“Visual Studio 测试”任务,不幸的是它在两种配置下都运行,并且在调试配置下花费的时间太长。每个测试都是独立运行的。

我没有看到任何有条件地运行任务的选项(我无法编辑 YAML)。

有没有办法仅针对特定配置在管道中运行任务?

4

1 回答 1

3

首先,您必须拥有在项目中创建、编辑和删除管道的权限。如果您没有权限,则需要联系项目管理员。

假设配置的变量是Configuration = Debug,Release。仅针对特定配置在管道中运行任务:

  1. 如果您的管道是使用经典编辑器创建的,您可以按照以下屏幕截图中显示的步骤进行操作。
  • Configuration在管道中 设置变量在此处输入图像描述
  • 设置Multi-configuration作业,并添加条件以跳过Visual Studio 测试Configuration任务,当Debug. 在此处输入图像描述
  1. 如果您的管道是使用 YAML 创建的。
  • 使用if条件跳过Visual Studio 测试任务。
jobs:
- job: Build
  strategy:
   maxParallel: 2
   matrix:
     DEBUG:
       Configuration: Debug
     RELEASE:
      Configuration: Release
  steps:
  - task: Bash@3
    displayName: 'Show current Configuration'
    inputs:
      targetType: 'inline'
      script: 'echo "Configuration = $(Configuration)"'

  . . .

  - ${{ if eq(variables['Configuration'], 'Release') }}:
    - task: VSTest@2
      displayName: 'VsTest - testAssemblies'
      inputs:
        platform: '$(buildPlatform)'
        configuration: '$(buildConfiguration)'

这样,当Configurationis时DebugVisual Studio Test任务将被跳过并隐藏在作业运行中。 在此处输入图像描述

  • condition用于跳过Visual Studio 测试任务。
jobs:
- job: Build
  strategy:
   maxParallel: 2
   matrix:
     DEBUG:
       Configuration: Debug
     RELEASE:
      Configuration: Release
  steps:
  - task: Bash@3
    displayName: 'Show current Configuration'
    inputs:
      targetType: 'inline'
      script: 'echo "Configuration = $(Configuration)"'

  . . .

  - task: VSTest@2
    displayName: 'VsTest - testAssemblies'
    condition: eq(variables['Configuration'], 'Release')
    inputs:
      platform: '$(buildPlatform)'
      configuration: '$(buildConfiguration)'

这样,当Configurationis时DebugVisual Studio Test任务将被跳过但不会隐藏在作业运行中。 在此处输入图像描述

于 2020-12-02T04:17:09.853 回答