Cucumber Suite Hooks
Adding hooks that run before and after your RSpec test suite looks like this:
# spec/helper/spec_helper.rb
RSpec.configure do |config|
config.before(:suite) do
My::Service.build!
end
config.after(:suite) do
My::Service.tear_down!
end
end
But for Cucumber, the API isn't quite as obvious. I found some interesting discussion online about this subject, and eventually settled on the following:
# features/support/env.rb
My::Service.build!
at_exit do
My::Service.tear_down!
end
Anything in features/support/env.rb
gets run before the Cucumber test suite, so the first method call functions like a before suite block. at_exit
is Ruby Kernel and runs when the program exits. This implementation works roughly the same as a before and after block.
-
at_exit
documentation