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

如何修复YAML中覆盖MSTEST测试运行参数的语法错误?

问题修复与实现方案

报错原因

出现的Line: 35, Col: 1): While parsing a block mapping, did not find expected key错误,源于YAML语法结构错误,同时存在变量拼写、引用错误等问题,具体修复点如下:

修复步骤

  1. 修正YAML层级结构
    steps不能直接与stages同级,需将其放入某个stage的jobs下。原代码中- steps:的写法破坏了YAML层级,导致解析失败。此处新增一个执行测试的stage,将测试任务放入其中。

  2. 修正变量拼写
    参数vriable2拼写错误,改为variable2。

  3. 修复模板参数语法
    tagName: ${{ parameters.dockerImageTagName }缺少闭合的}},改为tagName: ${{ parameters.dockerImageTagName }}(若该参数未定义,需先在parameters块中添加,或直接删除该行)。

  4. 修正测试参数引用
    overrideTestrunParameters中的变量引用存在错误:

    • $( Date1)有多余空格,且实际参数名为variable1,应改为$(variable1)
    • $( Date2)同理,改为$(variable2)
  5. 修正资源库名称
    资源库name: Autotesting/ Autotesting中的空格去掉,改为Autotesting/Autotesting。

完整修正代码

parameters:
  - name: environmentName
    default: Test
    values:
      - Dev
      - Test
  - name: variable1
    type: string
    default: 2024-06-04
    displayName: Date1
  - name: variable2
    type: string
    default: 2024-07-01
    displayName: Date2
  # 若使用dockerImageTagName需定义,否则删除
  - name: dockerImageTagName
    type: string
    default: "latest"
  - name: runsettingsFileName
    type: string
    default: "test.runsettings"
  - name: testFilter
    type: string
    default: ""

trigger: none
pr: none

resources:
  repositories:
    - repository: auto
      type: git
      name: Autotesting/Autotesting

stages:
  - template: PipelineTemplates\@auto
    parameters:
      techArea: Automation
      buildPipelineName: Automation
      testsType: Apis
      runSettings: remote
      environmentName: ${{ parameters.environmentName }}
      tagName: ${{ parameters.dockerImageTagName }}
      runsettingsFileName: ${{ parameters.runsettingsFileName }}
      testFilter: ${{ parameters.testFilter }}

  - stage: RunMSTests
    jobs:
      - job: ExecuteTests
        steps:
          - task: VSTest@2
            inputs:
              overrideTestrunParameters: |
                - Date1 $(variable1)
                - Date2 $(variable2)

实现说明

修正后的YAML确保了层级结构正确,将测试任务放入独立stage中避免解析错误。通过overrideTestrunParameters将流水线参数variable1、variable2的值传递给MSTest的Date1、Date2测试运行参数,满足覆盖需求。若模板中部分参数未实际使用,可直接删除对应行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 07:23:18