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

如何配置Azure Pipeline VSTest@2运行多目标框架下的测试用例

解决多目标框架测试仅执行单框架的Azure Pipeline配置方法

核心原因

默认的测试任务如果没有显式指定要执行的目标框架,只会自动选择匹配当前运行环境的首个目标框架执行,导致另一个框架的测试被忽略。

配置方案

你可以选择以下两种常用配置方式实现双框架都执行测试:

方案1:使用dotnet test命令显式指定目标框架

在YAML中定义两个测试步骤,分别指定--framework参数对应两个目标框架:

steps:
# 需先完成代码还原、全量构建步骤,保证已经生成两个目标框架的构建产出
- task: DotNetCoreCLI@2
  displayName: 'Run tests for .NET Framework 4.6.1'
  inputs:
    command: 'test'
    projects: '**/*Tests.csproj'
    arguments: '--framework net461 --no-build' # 已提前构建可加--no-build参数节省执行时间
    publishTestResults: true

- task: DotNetCoreCLI@2
  displayName: 'Run tests for .NET 5.0'
  inputs:
    command: 'test'
    projects: '**/*Tests.csproj'
    arguments: '--framework net5.0 --no-build'
    publishTestResults: true

注意:.NET Framework 4.6.1的测试仅能在Windows环境的代理上运行,Linux、macOS代理不支持.NET Framework测试执行

方案2:使用VSTest任务匹配双框架测试文件

如果习惯使用VSTest任务,可以配置测试路径同时匹配两个框架的测试dll:

steps:
# 构建步骤需已生成两个框架的测试dll,常规路径为bin/$(Configuration)/net461/xxxTests.dll、bin/$(Configuration)/net5.0/xxxTests.dll
- task: VSTest@2
  displayName: 'Run tests for all target frameworks'
  inputs:
    testSelector: 'testAssemblies'
    testAssemblyVer2: |
      **\bin\**\*Tests.dll
      !**\obj\**
    searchFolder: '$(System.DefaultWorkingDirectory)'
    publishTestResults: true

验证方式

流水线执行完成后进入测试结果页,可看到测试用例的运行平台会分别标注.NET Framework 4.6.1和.NET 5.0,总用例数量和本地运行结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:15:04