Specflow - 如何在 C# 中以编程方式从 srprofile 获取目标名称
Specflow - How to get Target Name from srprofile programatically in 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 APIs 获取环境变量的值。
var targetName = Environment.GetEnvironmentVariable("RUNNER_TARGET");
您可以在此处找到完整示例:https://github.com/SpecFlowOSS/SpecFlow.Plus.Examples/tree/master/AccessTargetName
完全披露:我是 SpecFlow 和 SpecFlow+ 的开发者之一
有没有办法获取在 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 APIs 获取环境变量的值。
var targetName = Environment.GetEnvironmentVariable("RUNNER_TARGET");
您可以在此处找到完整示例:https://github.com/SpecFlowOSS/SpecFlow.Plus.Examples/tree/master/AccessTargetName
完全披露:我是 SpecFlow 和 SpecFlow+ 的开发者之一