Forgot to mention before. I'm on Rails 2.2.2 and RSpec 1.1.4.
Inspired by older discussion touching this issue (see
http://www.nabble.com/Database-clearing-td19572270.html) I've now got
Spec::Runner.configure do |config|
config.use_transactional_fixtures = false
...
tables_to_truncate =
ActiveRecord::Base.connection.tables - ["schema_migrations"]
config.before(:all) do
tables_to_truncate.each do |table_name|
ActiveRecord::Base.connection.execute("TRUNCATE TABLE
#{table_name};")
end
end
...
end
And if I run rake spec all specs pass. But if I run script/spec
spec/models/class_foo_spec.rb then
it "finds no ghost foos" do
ClassFoo.should have(:no).records
end
fails. That is the first example of describe ClassFoo. Looks like
script/spec runs examples (see pastie http://pastie.org/354521) in the
order they are defined and rake spec in reverse order. And that of
course makes ClassFoo.should have(:no).records fail when run _after_
examples that create ClassFoo instances (befause ive got transactions
off and the db state "bleeds" within one describe.
2009-01-07 16:11, Tero Tilus:
> I'm keep getting the following kind of pattern in my logs
>
> ... log from example starts here ...
> SQL (0.0ms) BEGIN
> SQL (0.0ms) BEGIN
> ClassFoo Create (0.2ms) INSERT ...
> Group Load (0.4ms) SELECT ...
> Contains Create (0.2ms) INSERT ...
> ... other stuff from example, no transaction stuff ...
> SQL (1.9ms) COMMIT
> SQL (0.1ms) ROLLBACK
> ... log from example ends here ...
If I turn use_transactional_fixtures off, the outer transaction is
gone.
--
Tero Tilus ## 050 3635 235 ## http://tero.tilus.net/
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users