代码之家  ›  专栏  ›  技术社区  ›  N..

如何从场景中获取步骤定义中的@标记?-红宝石

  •  4
  • N..  · 技术社区  · 6 年前

    如何在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 回复  |  直到 6 年前
        1
  •  4
  •   Thomas Walpole    6 年前

    这不是一个直接的解决方案,但可以为特定的标记设置挂钩(前、后、后步骤等),这允许您设置场景中可访问的实例变量

    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