[rspec-users] cucumber hooks BeforeAll and AfterAll

aslak hellesoy aslak.hellesoy at gmail.com
Mon Feb 16 04:02:07 EST 2009


On Sun, Feb 15, 2009 at 8:47 PM, Ben Mabey <ben at benmabey.com> wrote:
> 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.
>>

I updated the most relevant wiki page with this info:
http://wiki.github.com/aslakhellesoy/cucumber/hooks

Aslak

>> 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
>>>
>>>
>>
>>
>>
>>
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>



-- 
Aslak (::)


More information about the rspec-users mailing list