在基于 VSTest 的 C++ 测试中读取运行时参数

Reading runtime parameters in VSTest based C++ tests

当 运行 在 vstest.console.exe 下或作为 Azure DevOps 构建管道中的 VSTest 任务时,如何读取传递给 C++ 单元测试的运行时参数?

我正在尝试读取在 .runsettings 文件中设置或通过 overrideTestrunParameters 传递的运行时参数,但无法找到执行此操作的方法。

看起来 TestContext 仅适用于基于 C# 的测试,不适用于非托管 C++ 单元测试。

I am trying to read the runtime parameters set in .runsettings file

在 Azure Devops 中,您可以直接使用 PowerShell 任务 读取 .runsettings 文件中的运行时参数:

这是一个例子:

test.runsettings

  <!-- Parameters used by tests at runtime -->
  <TestRunParameters>
    <Parameter name="webAppUrl" value="http://localhost" />
    <Parameter name="webAppUserName" value="Admin" />
    <Parameter name="webAppPassword" value="Password" />
  </TestRunParameters>

管道 PowerShell 任务内联脚本:

[xml]$DSConfig = gc "$(build.sourcesdirectory)/test.runsettings" #file path

# Select <parameters> nodes
$ParametersNode = $DSConfig.SelectNodes('//Parameter')


foreach($Node in $ParametersNode)
{
   echo  Name: $Node.name Value: $Node.value
  
}

结果: