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

如何在Azure Pipeline中强制使用17.3.1版本的Microsoft测试执行命令行工具?

强制在Azure Pipeline中使用17.3.1版Microsoft测试执行命令行工具

针对共享构建代理导致测试工具版本随机切换的问题,提供三种可靠解决方式:

1. 锁定测试项目的NuGet包版本

在所有测试项目的.csproj文件中,显式指定Microsoft.NET.Test.Sdk包版本为17.3.1,这是最直接的绑定方式,不受代理环境影响:

<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.1" />

提交该修改后,dotnet test会强制使用与该包版本对应的测试执行工具。

2. 在Pipeline中安装指定版本的测试工具

无需修改项目文件,可在Pipeline中单独安装17.3.1版的dotnet-vstest工具,再调用它执行测试:

# 保留原有.NET 6 SDK安装步骤
- task: UseDotNet@2
  displayName: 'Use .NET 6'
  inputs:
    packageType: 'sdk'
    version: '6.0.x'

# 全局安装17.3.1版vstest工具
- task: DotNetCoreCLI@2
  displayName: 'Install fixed vstest version'
  inputs:
    command: 'tool'
    arguments: 'install --global dotnet-vstest --version 17.3.1'

# 调用安装好的工具执行测试
- script: vstest.console.exe $(testProjects) --你的测试参数
  displayName: 'Run Unit Tests with 17.3.1 vstest'

如果代理环境存在路径问题,可改用dotnet tool run vstest命令调用。

3. 指定绑定对应测试工具的.NET SDK版本

部分.NET 6 SDK版本默认绑定特定版本的测试工具,例如.NET 6.0.404默认搭配17.3.1版测试工具。直接在Pipeline中指定该SDK版本即可:

- task: UseDotNet@2
  displayName: 'Use .NET 6 SDK with fixed test tool'
  inputs:
    packageType: 'sdk'
    version: '6.0.404'

可通过微软官方文档或vstest项目的版本对应关系,确认匹配的SDK版本。

背景补充:17.4.0版测试执行工具存在代码覆盖率相关Bug,该问题已在官方仓库被反馈。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 16:31:17