You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET Azure构建流水线中实现单元测试先于构建流程执行

在Azure DevOps .NET构建流水线中配置前置单元测试的方法

Azure DevOps流水线默认按任务排列顺序执行,前序任务失败后自动终止后续任务运行,只需要将单元测试任务放在所有正式构建任务之前即可满足需求,以下是两种常用配置方式:

1. YAML流水线配置(推荐)

直接按以下顺序编排任务即可:

trigger:
- main

pool:
  vmImage: 'windows-latest' # 也可使用ubuntu-latest等镜像

steps:
# 第一步:还原所有项目NuGet依赖
- task: DotNetCoreCLI@2
  inputs:
    command: 'restore'
    projects: '**/*.csproj'

# 第二步:执行单元测试,必须放在构建任务之前
- task: DotNetCoreCLI@2
  inputs:
    command: 'test'
    projects: '**/*[Tt]ests/*.csproj' # 匹配所有测试项目,可根据实际路径调整
    arguments: '--configuration Release'
  # 默认为false,测试失败时直接终止流水线,不运行后续任务
  continueOnError: false

# 第三步:测试全部通过后才会执行的正式构建任务
- task: DotNetCoreCLI@2
  inputs:
    command: 'build'
    projects: '**/src/*.csproj' # 你的正式业务项目路径
    arguments: '--configuration Release --no-restore'

如果你需要跳过测试项目的重复构建直接复用之前的编译结果,可以在测试命令添加--no-build参数,进一步提升执行效率。

2. 经典可视化编辑器配置

  • 进入对应构建流水线的编辑界面,先确保已经添加了.NET Core的NuGet还原任务
  • 新建一个.NET Core任务,命令选择「test」,拖动该任务到所有构建、打包、发布类任务的最上方,仅排在还原任务之后
  • 配置测试任务的项目路径,建议用通配符**/*Tests.csproj匹配所有单元测试项目
  • 展开测试任务的「控制选项」栏,确认「出错时继续」选项未勾选,确保测试失败直接终止整个流水线

小提示:如果需要过滤仅运行单元测试、排除集成测试,可以在测试任务的参数栏添加--filter "TestCategory=Unit",前提是你的单元测试方法已经加了[TestCategory("Unit")]的特性标记

内容的提问来源于stack exchange,提问作者AzureDevOpsBeginner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 06:54:03