从 SpecFlow 中的场景获取当前步骤定义
Get current Step definition from of a Scenario in SpecFlow
我正在为一个名为 CodeSpec and it is built on top of SpecFlow 的框架做贡献。
使用 ScenarioContext
我可以获得当前正在执行的场景的标题。但我也想获得步骤定义。
假设场景是
Scenario: Google for Cats
Given I navigate to "http://google.com"
And I enter value "Cats" to the "searchBox" with the "id" of "lst-ib"
And I click on element "searchButton" with the "xpath" of "id('sblsbb')/button" and wait "4" seconds
Then The page contains text pattern "The domestic cat is"
我可以用下面的代码得到标题,
[AfterScenario("UIAutomationReport")]
public static void AfterScenario()
{
var title = ScenarioContext.Current.ScenarioInfo.Title;
//title now is "Google for Cats"
}
我也想得到步骤定义
Given I navigate to "http://google.com"
、And I enter value "Cats" to the "searchBox" with the "id" of "lst-ib"
等
我该怎么做?
您可以找到来电者姓名和来电者属性
StackFrame 框架 = new StackFrame(1);
MethodBase 方法=frame.GetMethod();
消息 = String.Format("{0}.{1} : {2}",
method.DeclaringType.FullName, method.Name, 留言);
Console.WriteLine(留言);
见
C# Method Caller
在属性中是 Specflow 步骤描述
在当前版本的 specflow 中无法获取此信息,但在下一个版本 (v2) 中,有关 step text and step type will be available from the ScenarioStepContext class
的信息
您可以从 CI build nuget feed.
获取新版本的测试版
您可以使用以下代码来获取您的步骤定义:
String title = ScenarioContext.Current.StepContext.StepInfo.Text;
Console.WriteLine("Step Definition Title : " + title);
我正在为一个名为 CodeSpec and it is built on top of SpecFlow 的框架做贡献。
使用 ScenarioContext
我可以获得当前正在执行的场景的标题。但我也想获得步骤定义。
假设场景是
Scenario: Google for Cats
Given I navigate to "http://google.com"
And I enter value "Cats" to the "searchBox" with the "id" of "lst-ib"
And I click on element "searchButton" with the "xpath" of "id('sblsbb')/button" and wait "4" seconds
Then The page contains text pattern "The domestic cat is"
我可以用下面的代码得到标题,
[AfterScenario("UIAutomationReport")]
public static void AfterScenario()
{
var title = ScenarioContext.Current.ScenarioInfo.Title;
//title now is "Google for Cats"
}
我也想得到步骤定义
Given I navigate to "http://google.com"
、And I enter value "Cats" to the "searchBox" with the "id" of "lst-ib"
等
我该怎么做?
您可以找到来电者姓名和来电者属性
StackFrame 框架 = new StackFrame(1);
MethodBase 方法=frame.GetMethod();
消息 = String.Format("{0}.{1} : {2}", method.DeclaringType.FullName, method.Name, 留言);
Console.WriteLine(留言);
见 C# Method Caller
在属性中是 Specflow 步骤描述
在当前版本的 specflow 中无法获取此信息,但在下一个版本 (v2) 中,有关 step text and step type will be available from the ScenarioStepContext class
的信息您可以从 CI build nuget feed.
获取新版本的测试版您可以使用以下代码来获取您的步骤定义:
String title = ScenarioContext.Current.StepContext.StepInfo.Text;
Console.WriteLine("Step Definition Title : " + title);