On Jun 16, 2010, at 2:02 PM, Marcelo de Moraes Serpa wrote: > Yes, > > That's what I want to do, but my code is a little bit different. I'm calling > config.use_transactional_fixtures inside the block:
This doesn't work. That's what I was saying. Probably because the transactions is already turned on by active record before this block is executed. Read my last post again - it should solve your problem by using database cleaner's transaction mode for in-memory examples and truncation mode for in-browser examples. > > config.before(:each) do > config.use_transactional_fixtures = false > end > > And then enabling it again after: > > config.after(:each) do > DatabaseCleaner.clean #truncation mode doesn't require the start method to > be called, so clean is enough. > config.use_transactional_fixtures = true > end > > Why? Well, not all example use js (culerity), and for those, I wouldn't want > to use DatabaseCleaner. > > However, it doesn't seem to work. If I create an object from the ruby > instance running the specs, and put a breakpoint, I can't see the data > outside of it :( > > Any ideas? > > Marcelo. > > On Wed, Jun 16, 2010 at 1:47 PM, David Chelimsky <dchelim...@gmail.com> wrote: > 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 <dchelim...@gmail.com> >> 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 >> rspec-users@rubyforge.org >> http://rubyforge.org/mailman/listinfo/rspec-users >> >> _______________________________________________ >> rspec-users mailing list >> rspec-users@rubyforge.org >> http://rubyforge.org/mailman/listinfo/rspec-users > > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users