能否在Azure DevOps的VsTest@2任务中覆盖.runsettings的MSTest Workers与Scope?
关于VsTest@2任务覆盖.runsettings中Parallelize配置的问题
可以覆盖.runsettings里的Workers和Scope设置,只是无法像TestRunParameters那样直接通过任务的专属参数配置,需要通过以下两种方式实现:
方法一:动态修改.runsettings文件
在VsTest@2任务前添加PowerShell/Bash任务,根据流水线变量替换配置值:
以PowerShell为例:
# 读取原配置文件 $runSettingsContent = Get-Content -Path "your-runsettings-file.runsettings" -Raw # 替换Workers数值,这里用流水线变量$(TestWorkers)传入目标值 $runSettingsContent = $runSettingsContent -replace '<Workers>1</Workers>', "<Workers>$(TestWorkers)</Workers>" # 替换Scope值,用流水线变量$(TestScope)传入目标值 $runSettingsContent = $runSettingsContent -replace '<Scope>ClassLevel</Scope>', "<Scope>$(TestScope)</Scope>" # 保存修改后的配置文件 $runSettingsContent | Set-Content -Path "updated-runsettings.runsettings"
随后在VsTest@2任务中指定settingsFile: 'updated-runsettings.runsettings'即可。
方法二:通过命令行参数覆盖
VsTest本身支持通过命令行参数指定并行配置,直接在VsTest@2任务的otherConsoleOptions参数中添加:
/Parallel /Workers:$(TestWorkers) /ParallelScope:$(TestScope)
该命令行参数会直接覆盖.runsettings文件中对应的Parallelize节点配置,无需修改原文件。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

