我正在为一个名为CodeSpec的框架做出贡献,它建立在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"
等
我该怎么做?
答案 0 :(得分:3)
您无法在当前版本的specflow中获得此功能,但在下一版本(v2)中有关step text and step type will be available from the ScenarioStepContext class的信息
您可以从CI build nuget feed获得新版本的测试版。
答案 1 :(得分:2)
您可以使用以下代码来获取步骤定义:
String title = ScenarioContext.Current.StepContext.StepInfo.Text;
Console.WriteLine("Step Definition Title : " + title);
答案 2 :(得分:1)
您可以找到来电者的来电者姓名和属性
StackFrame frame = new StackFrame(1);
MethodBase方法= frame.GetMethod();
message = String.Format(" {0}。{1}:{2}", method.DeclaringType.FullName,method.Name,message);
Console.WriteLine(消息);
请参阅 C# Method Caller
在属性中是Specflow步骤描述