Željko Filipin
Željko Filipin

Reputation: 57262

Feature and scenario outline name in cucumber before hook

If I have a simple cucumber feature and scenario, like this (example code is from 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

I know how to get feature and scenario name in before hook:

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

The above code returns:

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

The problem is if the feature has scenario outline:

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   |

When I run the above code I get:

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

How do I get feature and scenario outline name in cucumber before hook?

Upvotes: 4

Views: 9526

Answers (2)

Wasim Haque
Wasim Haque

Reputation: 1

scenario.gets should give you feature name.

Upvotes: 0

Željko Filipin
Željko Filipin

Reputation: 57262

Change before hook to this:

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

Output:

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

Upvotes: 6

Related Questions