0

有没有办法获得在 specflow 的 srs 配置文件中定义的目标名称?

以下是 srs 配置文件中定义的内容,

<Targets>
<Target name="Login">
      <Filter>@login</Filter>
</Target>
</Targets>

我想获取目标“登录”的名称并将其保存在 C# 中的变量中。

4

1 回答 1

2

我们没有获取目标名称的 API,但您可以通过 srProfile 中的更多内容来获取它。

这就是你的做法:

<?xml version="1.0" encoding="utf-8"?>
<TestProfile xmlns="http://www.specflow.org/schemas/plus/TestProfile/1.5">
  <Targets>
    <Target name="Target1">
      <DeploymentTransformationSteps>
        <EnvironmentVariable variable="RUNNER_TARGET" value="Target1" />
      </DeploymentTransformationSteps>
    </Target>
    <Target name="Target2">
      <DeploymentTransformationSteps>
        <EnvironmentVariable variable="RUNNER_TARGET" value="Target2" />
      </DeploymentTransformationSteps>
    </Target>
  </Targets>
</TestProfile>

您指定将环境变量设置为目标名称的部署转换步骤。

在您的绑定中,您可以通过普通的 .NET API 获取环境变量的值。

var targetName = Environment.GetEnvironmentVariable("RUNNER_TARGET");

你可以在这里找到一个完整的例子:https ://github.com/SpecFlowOSS/SpecFlow.Plus.Examples/tree/master/AccessTargetName


全面披露:我是 SpecFlow 和 SpecFlow+ 的开发者之一

于 2020-09-07T11:09:42.480 回答