Marcelo de Moraes Serpa
2010-Jun-15 22:15 UTC
[rspec-users] rspec (steak) turning off transactional fixtures
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? Thanks, Marcelo. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20100615/8c6e8a82/attachment.html>
David Chelimsky
2010-Jun-15 22:32 UTC
[rspec-users] rspec (steak) turning off transactional fixtures
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
Marcelo de Moraes Serpa
2010-Jun-16 18:37 UTC
[rspec-users] rspec (steak) turning off transactional fixtures
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? Marcelo. On Tue, Jun 15, 2010 at 5:32 PM, David Chelimsky <dchelimsky at 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 at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20100616/f84441a1/attachment.html>
David Chelimsky
2010-Jun-16 18:47 UTC
[rspec-users] rspec (steak) turning off transactional fixtures
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 <dchelimsky at 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 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-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20100616/6a1baaf9/attachment-0001.html>
Marcelo de Moraes Serpa
2010-Jun-16 19:02 UTC
[rspec-users] rspec (steak) turning off transactional fixtures
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: 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 <dchelimsky at 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 <dchelimsky at 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 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 > > > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20100616/f879bf5e/attachment.html>
Marcelo de Moraes Serpa
2010-Jun-16 19:03 UTC
[rspec-users] rspec (steak) turning off transactional fixtures
Oh, the code in the before/after blocks is wrapped in a if options[:js]. Forgot to write it. On Wed, Jun 16, 2010 at 2:02 PM, Marcelo de Moraes Serpa < celoserpa at gmail.com> 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: > > 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 <dchelimsky at 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 <dchelimsky at 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 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 >> >> >> >> _______________________________________________ >> rspec-users mailing list >> rspec-users at rubyforge.org >> http://rubyforge.org/mailman/listinfo/rspec-users >> > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20100616/e2c9c06e/attachment.html>
David Chelimsky
2010-Jun-16 19:05 UTC
[rspec-users] rspec (steak) turning off transactional fixtures
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 <dchelimsky at 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 <dchelimsky at 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 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 > > > _______________________________________________ > 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-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20100616/6f86f277/attachment-0001.html>
Marcelo de Moraes Serpa
2010-Jun-16 19:28 UTC
[rspec-users] rspec (steak) turning off transactional fixtures
Ah, got it! Thanks for your patience, David ;) Cheers, Marcelo. On Wed, Jun 16, 2010 at 2:05 PM, David Chelimsky <dchelimsky at gmail.com>wrote:> > 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 <dchelimsky at 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 <dchelimsky at 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 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 >> >> >> >> _______________________________________________ >> 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 > > > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20100616/826eaf61/attachment.html>