Records created while tests are running are not being saved.

In following code -

require "test_helper" Class SomeControllerTest < ActionController::TestCase

  def test_something     record = SomeModel.create :name => 'test'     record.save!     gets   end

end

Above record is not being saved in the database. I can confirm this by pausing execution by calling gets() and doing a "SELECT * FROM some_models" right into the test database which returns no rows.

Tests are ran inside a transaction and are rolled back after each test. In a separate process (i.e. ./script/dbconsole) you will not see the data create from a test, even if you pause execution.

You *should* be able to see the insert (and the roll back) happening in test.log

Even though the transaction is rolled back, the sequence on the primary key is still advanced, so you should see that effect in a separate process.

- Steven

Thanks.

you can see the data during the test if you alter the transaction isolation level to read uncommitted (at least you can with mysql)

Fred

Just for records. Line #47 - http://code.google.com/p/kopal/source/browse/test/network/connect_controller_test.rb?r=876e7c80c420e5faca9492bd50ed1dd943cb90ac