2012-06-26 2 views
4

Если у меня есть простой огурец особенности и сценария, как это (пример код из cucumber wiki):Характеристики и сценарий имя очертания в огурце, прежде чем крючок

Feature: Eating cucumbers 

Scenario: eat 5 out of 12 
    Given there are 12 cucumbers 
    When I eat 5 cucumbers 
    Then I should have 7 cucumbers 

Я знаю, как получить функцию и сценарий имя в before крючке:

Before do |scenario| 
    p [scenario.feature.name, scenario.name] 
end 

Приведенный выше код возвращает:

["Eating cucumbers", "eat 5 out of 12"] 

Проблема заключается в том, если функция имеет сценарий контур:

Scenario Outline: eating 
    Given there are <start> cucumbers 
    When I eat <eat> cucumbers 
    Then I should have <left> cucumbers 

    Examples: 
    | start | eat | left | 
    | 12 | 5 | 7 | 

Когда я запускаю приведенный выше код я получаю:

undefined method `feature' for #<Cucumber::Ast::OutlineTable::ExampleRow:0x007fb0f94a8240> (NoMethodError) 

Как мне получить функция и сценарий имя в огурце before крюк?

ответ

6

Изменить before крюк к этому:

Before do |scenario| 
    p [scenario.scenario_outline.feature.name, scenario.scenario_outline.name, scenario.name] 
end 

Выход:

["Eating cucumbers", "eating", "| 12 | 5 | 7 |"] 
+1

scenario.feature удаляется в огурце 1.2.4 - я еще не нашел другой способ получить в этой функции. имя – user132837

Смежные вопросы