有没有办法获得在 specflow 的 srs 配置文件中定义的目标名称?
以下是 srs 配置文件中定义的内容,
<Targets>
<Target name="Login">
<Filter>@login</Filter>
</Target>
</Targets>
我想获取目标“登录”的名称并将其保存在 C# 中的变量中。
有没有办法获得在 specflow 的 srs 配置文件中定义的目标名称?
以下是 srs 配置文件中定义的内容,
<Targets>
<Target name="Login">
<Filter>@login</Filter>
</Target>
</Targets>
我想获取目标“登录”的名称并将其保存在 C# 中的变量中。
我们没有获取目标名称的 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+ 的开发者之一