On Jun 16, 2010, at 1:37 PM, Marcelo de Moraes Serpa wrote:
> Hi David,
>
> Yeah, I'm using DatabaseCleaner, pretty much familiar with it.
>
> The issue is that passing it to rspec's yielded config object didn't seem to
> disable transactional_fixtures:
>
> Spec::Runner.configure do |config|
>
> config.before(:each) do
> if options[:js] #using culerity
> Capybara.current_driver = :culerity
> config.use_transactional_
> fixtures = false
> end
> end
>
> config.after(:each) do
> if options[:js]
> DatabaseCleaner.clean
> Capybara.use_default_driver
> config.use_transactional_fixtures = true
> end
> end
>
> end
>
> Check the lines "config.use_transactional_fixtures" on both callbacks. I
> doesn't seem to disable them. Any ideas?
Not sure why that doesn't work, but that's not what I was proposing. I'm saying
use database cleaner _instead_ of config.use_transactional_fixtures:
Spec::Runner.configure do |c|
c.use_transactional_fixtures = false
c.before do
if options[:js]
DatabaseCleaner.strategy = :truncation
else
DatabaseCleaner.strategy = :transaction
end
DatabaseCleaner.start
end
c.after do
DatabaseCleaner.clean
end
end
Make sense?
>
> Marcelo.
>
>
> On Tue, Jun 15, 2010 at 5:32 PM, David Chelimsky <[email protected]> wrote:
> On Jun 15, 2010, at 5:15 PM, Marcelo de Moraes Serpa wrote:
>
> > Hey all,
> >
> > I have replaced Cucumber with Steak and I like the experience so far. It is
> > not as polished as Cucumber in what comes to configuration, but it is
> > simpler and covers my needs perfectly. I've followed the trick to pass a
> > hash to the example in order to setup Capybara to use a different driver,
> > like so:
> >
> > spec/acceptance/support/javascript.rb
> >
> > Spec::Runner.configure do |config|
> >
> > config.before(:each) do
> > if options[:js] #using culerity
> > Capybara.current_driver = :culerity
> > config.use_transactional_fixtures = false
> > end
> > end
> >
> > config.after(:each) do
> > if options[:js]
> > DatabaseCleaner.clean
> > Capybara.use_default_driver
> > config.use_transactional_fixtures = true
> > end
> > end
> >
> > end
> >
> > As you can see, if an example has an option with :js => true, it will use
> > culerity, and this works fine. What doesn't seem to work is the
> > use_transactional_fixtures = false conf. I still can't access the data
> > outside of the ruby instance (i.e: the app server celerity is accessing
> > doesn't have access to the fixture data). With Cucumber it would be a
> > matter of setting up Cucumber::Rails::World.use_transactional_fixtures to
> > false.
> >
> > How could I disable transactional fixtures on a per example base when using
> > rspec / steak?
>
> As far as I know, this is not easy, or maybe even possible, with the Rails
> built-in framework. What I'd do is turn off the rails features
> (config.use_transactional_fixtures = false) and use database_cleaner. Are you
> familiar w/ database_cleaner?
>
> David
> _______________________________________________
> rspec-users mailing list
> [email protected]
> http://rubyforge.org/mailman/listinfo/rspec-users
>
> _______________________________________________
> rspec-users mailing list
> [email protected]
> http://rubyforge.org/mailman/listinfo/rspec-users
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users