我们有一个带有 Azure Devops 2019 的本地 TFVC 设置。我正在构建一个 C++ 库并设置了一个运行良好的多配置构建(调试、发布)。但是,我只想在构建发布配置时运行一组单元测试。我添加了一个“Visual Studio 测试”任务,不幸的是它在两种配置下都运行,并且在调试配置下花费的时间太长。每个测试都是独立运行的。
我没有看到任何有条件地运行任务的选项(我无法编辑 YAML)。
有没有办法仅针对特定配置在管道中运行任务?
我们有一个带有 Azure Devops 2019 的本地 TFVC 设置。我正在构建一个 C++ 库并设置了一个运行良好的多配置构建(调试、发布)。但是,我只想在构建发布配置时运行一组单元测试。我添加了一个“Visual Studio 测试”任务,不幸的是它在两种配置下都运行,并且在调试配置下花费的时间太长。每个测试都是独立运行的。
我没有看到任何有条件地运行任务的选项(我无法编辑 YAML)。
有没有办法仅针对特定配置在管道中运行任务?
首先,您必须拥有在项目中创建、编辑和删除管道的权限。如果您没有权限,则需要联系项目管理员。
假设配置的变量是Configuration = Debug,Release
。仅针对特定配置在管道中运行任务:
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)'
这样,当Configuration
is时Debug
,Visual 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)'
这样,当Configuration
is时Debug
,Visual Studio Test任务将被跳过但不会隐藏在作业运行中。