[rspec-users] Run cucumber on a different DB than test?
matt at mattwynne.net
Fri Feb 27 12:01:05 EST 2009
On 27 Feb 2009, at 16:54, Scott Taylor wrote:
> On Feb 27, 2009, at 11:41 AM, Matt Wynne wrote:
>> On 26 Feb 2009, at 18:27, Scott Taylor wrote:
>>> On Feb 26, 2009, at 1:19 PM, Forrest Chang wrote:
>>>> Hi all:
>>>> Is it possible to run Rails Cucumber spec in a different DB than
>>>> the test DB? I'd like to run the rspec and cucumber tests in
>>>> parallel in my cc.rb build, and as it is now, I get MYSQL
>>>> deadlocks on occasion. I could serialize them, but I'd like the
>>>> quicker feedback of running them in parallel.
>>> Why not create a new environment, and set
>>> RAILS_ENV="test_cucumber" ?
>> We do this, and it's entirely possible, in fact I highly recommend
>> it. We call our environment 'features'
>> One gotcha is that rspec-rails and a certain file in rails
>> (which cucumber requires into Cucumber::Rails::World) will stomp
>> all over your RAILS_ENV and set it back to 'test', which means that
>> if you do (and you really shouldn't) have any code that depends on
>> this being set correctly, it will break.
> Yeah, and certain rake tasks won't work, if I recall properly.
> RAILS_ENV=another_env rake db:test:prepare still reset the test
> database, not the db in another_env.
Indeed. I do have a fully-functioning rake db:features:prepare task
which I can share if anyone's interested.
It's kind of a shame - this aspect of Rails is not nearly so
extensible as it looks. I really should spend some effort pushing them
some patches instead of just bodging it in our codebase.
More information about the rspec-users