如何从场景中获取步骤定义中的@tag? - Ruby

时间:2017-11-22 15:21:23

标签: ruby-on-rails ruby cucumber capybara

如何在Ruby中将场景中的标签转换为步骤定义?

**@TAGS**
Scenario: Showing information of the scenario
When I execute any scenario

现在我的步骤定义如下:

And(/^When I execute any scenario$/) do |page|
  How to get tag = @TAGS in step definition..
end

1 个答案:

答案 0 :(得分:2)

不是直接解决方案,但可以将钩子(Before,After,AfterStep等)设置为针对特定标签运行,这允许您设置场景中可访问的实例变量

Before('@my_tag') do  # will only run if the test has @my_tag tag
   @my_tag = true  # This instance variable will be accessible in the test
end

您还可以使用Before挂钩获取传递给它们的方案的事实,并使用它将实例变量设置为标记名称

Before do |scenario|
  @tags = scenario.source_tag_names # @tags instance variable accessible in test
end