[rspec-users] cucumber hooks BeforeAll and AfterAll

Ben Mabey ben at benmabey.com
Sun Feb 15 14:47:06 EST 2009


Zach Dennis wrote:
> On Sun, Feb 15, 2009 at 2:21 PM, Joaquin Rivera Padron
> <joahking at gmail.com> wrote:
>   
>> hey there,
>> the short version:
>> right now Cucumber provides hooks Before and After to be run around every
>> step, I have notice some use case where BeforeAll and AfterAll hooks would
>> be useful.
>> are ther plans that they be provided? what you think would be the best place
>> to do it (mother_step.rb)? any ideas about this could be accomplished?
>>
>>     
>
> BeforeAll is equivalent to just calling code up in env.rb.
> AfterAll is equivalent to registering a ruby at_exit hook in your env.rb.
>
> Of course they don't have to go in your env.rb, you could put them in
> another file, and then require them from env.rb or just let cucumber
> auto-load them if they're in your support/ directory.
>
>   

To illustrate what Zach is saying here is an example I used on the 
wiki[1] before:

  # Global setup
  ActionMailer::Base.delivery_method = :test
  ActionMailer::Base.perform_deliveries = true

  Before do
    # Scenario setup
    ActionMailer::Base.deliveries.clear
  end

  After do
    # Scenario teardown
    Database.truncate_all
  end

  at_exit do
    # Global teardown
    TempFileManager.clean_up
  end

HTH,
Ben

1. 
http://wiki.github.com/aslakhellesoy/cucumber/migration-from-rspec-stories
>   
>> the long version:
>>
>> playing with culerity, which according to the author:
>> * when running cucumber culerity spawns a new jruby process (that's the
>> IO.popen call) - this way cucumber runs in plain old ruby (and you can work
>> with your models for test setup etc.) and only celerity runs in jruby
>> * from then on all communication has to go through pipes (in, out) so i am
>> passing the browser config through those pipes to the newsly spawned jruby
>> process
>> * when a test fails the jruby process doesn't get killed, that's the java
>> processes you see. don't have a good idea how to solve this yet. for now you
>> will have to kill those processes by hand.
>>
>> that has improved since now there's a first attempt for built in support to
>> kill orfan java processes at:
>> http://github.com/joahking/culerity/tree/orfan_processes
>>
>> culerity trick happen at step_definitions/common_celerity.rb Before and
>> After hooks, where you build and kill a spawned jruby around every step.
>> There it is easy to see the gain if we could do those in an around All steps
>> manner
>>
>> what do you think?
>>
>> cheers,
>> joaquin
>>
>>
>> _______________________________________________
>> rspec-users mailing list
>> rspec-users at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
>>
>>     
>
>
>
>   



More information about the rspec-users mailing list