#37 ✓resolved
Brandon Faloona

Cucumber AfterStep hook fails with 'accept_hook?' on NilClass

Reported by Brandon Faloona | June 12th, 2009 @ 07:26 PM

Cucumber's new AfterStep hook, fails with the following backtrace. I'm unsure if this is a cucumber or watircraft issue.

cucumber (0.3.11)
bret-watircraft (0.5.0)

Given I use the standard login page     # lib/steps/login_page_steps.rb:7
undefined method `accept_hook?' for nil:NilClass (NoMethodError)
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/step_mother.rb:173:in `hooks_for'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/step_mother.rb:173:in `select'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/step_mother.rb:173:in `hooks_for'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/step_mother.rb:353:in `execute_after_step'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/step_mother.rb:279:in `after_step'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/ast/step_invocation.rb:37:in `invoke'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/ast/step_invocation.rb:22:in `accept'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/ast/visitor.rb:78:in `visit_step'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/formatter/pretty.rb:129:in `visit_step'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/ast/step_collection.rb:14:in `accept'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/ast/step_collection.rb:13:in `each'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/ast/step_collection.rb:13:in `accept'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/ast/visitor.rb:74:in `visit_steps'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/ast/background.rb:29:in `accept'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/ast/visitor.rb:49:in `visit_background'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/formatter/pretty.rb:90:in `visit_background'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/ast/feature.rb:22:in `accept'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/ast/visitor.rb:23:in `visit_feature'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/formatter/pretty.rb:42:in `visit_feature'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/ast/features.rb:24:in `accept'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/ast/features.rb:23:in `each'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/ast/features.rb:23:in `accept'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/ast/visitor.rb:19:in `visit_features'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/formatter/pretty.rb:26:in `visit_features'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/broadcaster.rb:9:in `__send__'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/broadcaster.rb:9:in `method_missing'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/broadcaster.rb:8:in `map'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/broadcaster.rb:8:in `method_missing'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/cli/main.rb:54:in `execute!'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/cli/main.rb:25:in `execute'
c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.11/bin/cucumber:9
c:/ruby/bin/cucumber:19:in `load'
c:/ruby/bin/cucumber:19
test/features/navigation.feature:4:in `Given I use the standard login page'

I defined the AfterStep hook here:

# /test/features/support/env.rb
require 'watircraft'
AfterStep do |step|
  puts "\nAfterStep hook\n\n"
end

While running:

cucumber /test/features/navigation.feature

If the env.rb file only includes an After or Before hook (for scenarios) it works fine.

Comments and changes to this ticket

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

A framework for web testing.

Shared Ticket Bins

People watching this ticket

Pages