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

在Azure DevOps YAML管道中覆写.NET Core测试运行参数

可行解决方案

方案1:修正转义写法(直接在DotNetCoreCLI@2任务中配置)

你遇到的是YAML字符串解析和dotnet test命令参数规则的双重转义问题,Windows代理下正确的arguments写法如下:

- ${{ each project in parameters.projects }}:
  - task: DotNetCoreCLI@2
    displayName: Execute ${{ project }} integration tests
    condition: succeededOrFailed()
    inputs:
      command: 'test'
      projects: '$(Pipeline.Workspace)/IntegrationTests/*/*${{ project }}.Test.dll'        
      arguments: '--settings ${{ parameters.testRunSettingsFile }} -- TestRunParameters.Parameter(name="Customer1.TestConnStr", value="${{ parameters.testConnStr }}") TestRunParameters.Parameter(name="Customer2.TestConnStr", value="${{ parameters.testConnStr }}")'
      testRunTitle: ${{ parameters.testRunTitlePrefix }}${{ project }}

注意要点:

  • 整个arguments的值用单引号包裹,此时内部的双引号不需要额外转义,YAML解析后会保留双引号传递给命令行
  • 你之前的写法漏了第一个TestRunParameters.Parameter的闭合右括号),也会引发参数格式错误
  • 不需要添加--%参数,DotNetCoreCLI@2任务在Windows代理上执行dotnet命令时会自动处理参数传递
    注:管道标记为秘密的变量不需要额外处理,传递过程中不会在日志中明文暴露

方案2:使用cmd脚本任务直接执行dotnet test命令

如果内置DotNetCoreCLI任务的参数解析依然有问题,可以替换为直接执行命令的脚本任务,绕开任务的参数封装逻辑:

- ${{ each project in parameters.projects }}:
  - script: |
      dotnet test $(Pipeline.Workspace)/IntegrationTests/*/*${{ project }}.Test.dll --logger trx --settings ${{ parameters.testRunSettingsFile }} -- TestRunParameters.Parameter(name="Customer1.TestConnStr", value="${{ parameters.testConnStr }}") TestRunParameters.Parameter(name="Customer2.TestConnStr", value="${{ parameters.testConnStr }}")
    displayName: Execute ${{ project }} integration tests
    condition: succeededOrFailed()

验证小技巧

你可以在测试任务前添加调试任务,确认转义后的参数格式是否符合要求:

- script: echo TestRunParameters.Parameter(name="Customer1.TestConnStr", value="${{ parameters.testConnStr }}")
  displayName: Debug parameter format

查看该任务的输出,确认双引号是否正常保留即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:48:01