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

Azure DevOps测试计划执行报错:Visual Studio Test任务版本/配置异常

解决Azure DevOps测试计划运行自动化测试的VSTest任务配置错误

问题场景

在Azure DevOps中执行测试计划内的自动化测试用例时,触发报错:

Validating stage:The selected stage does not have the right version or settings of the Visual Studio Test task to run tests

但对应的Release Pipeline直接运行时,测试用例能正常显示通过。复现路径如下:

  1. 创建测试计划TestPlan及测试用例ID65
  2. 本地用VS2019创建.NET4.6.2的MS Test项目,关联测试方法与ID65后推送至Azure仓库
  3. 配置Build Pipeline编译并发布测试产物
  4. 配置Release Pipeline运行测试,测试计划中ID65显示通过
  5. 通过测试计划的「Execute」→「Run with options」选择发布阶段运行,触发上述报错

核心排查点

报错的本质是测试计划触发的测试运行,对Release阶段的VSTest任务有额外配置要求,而直接运行Release Pipeline时不需要这些配置,因此出现两种场景结果不一致的情况。

修复步骤

1. 修正Release Pipeline的VSTest任务配置

打开Release Pipeline中执行测试的VSTest@3任务,确保以下配置正确:

  • 勾选「将测试结果发布到测试计划」选项(在任务的「测试计划」分组下),并选择对应的测试计划、测试套件
  • 测试程序集路径与Build Pipeline生成的路径一致,例如**\TestProject.dll(需匹配下载后的产物路径)
  • 指定测试运行平台(x86/x64),与项目编译平台保持一致(MS Test默认x86)
  • 确保任务版本为VSTest@3(旧版本可能不支持测试计划集成)

2. 调整Build Pipeline的产物发布范围

当前Build Pipeline仅发布TestProject文件夹,会导致测试程序集的依赖文件缺失,修改PublishBuildArtifacts任务的配置:

- task: PublishBuildArtifacts@1
  displayName: '3. Publish Build Artifacts'
  inputs:
    PathtoPublish: '**\bin\Debug\net462' # 发布完整的编译输出目录
    artifactName: 'TestAssemblies' # 自定义产物名称,方便Release阶段引用

同时,建议在Build的DotNetCoreCLI任务中明确指定构建配置:

arguments: '--configuration Debug'

3. 验证测试用例关联与产物引用

  • 在测试计划中打开ID65用例,确认「自动化」标签下已正确关联测试方法,且关联的构建版本为最新成功构建
  • 在Release Pipeline中添加DownloadBuildArtifacts任务,选择刚才发布的TestAssemblies产物,并将VSTest任务的searchFolder设置为$(System.ArtifactsDirectory)\TestAssemblies

4. 完整Build Pipeline示例

#AzureDevops.yml
trigger: none

pool:
  vmImage: 'windows-latest'
  demands: vstest

steps:
- task: DotNetCoreCLI@2
  displayName: '1. Build Solution'
  inputs:
    command: 'build'
    projects: '**/*.csproj'
    arguments: '--configuration Debug'

- task: VSTest@3
  displayName: '2. Run Tests'
  inputs:
      testSelector: 'testAssemblies'
      testAssemblyVer2: |
        !**\*TestAdapter.dll
        !**\obj\**
        **\bin\Debug\net462\TestProject.dll
      searchFolder: '$(System.DefaultWorkingDirectory)'
      codeCoverageEnabled: false
      platform: 'x86'

- task: PublishBuildArtifacts@1
  displayName: '3. Publish Build Artifacts'
  inputs:
    PathtoPublish: '**\bin\Debug\net462'
    artifactName: 'TestAssemblies'

验证

重新运行Build Pipeline生成最新产物,然后在测试计划中执行ID65用例,即可正常触发自动化测试并更新测试结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 05:40:26