Hi there! I’m creating an application in RoR and I’m implementing unit
testing in all my models.
When I run every test on his own (by running ruby
test/unit/some_test.rb) all tests are successful.
But when I run all tests together (by running rake test:units) some
tables from both databases (development e test) are deleted.
I’m using raw SQL (mysql) do create tables because I need composite
primary keys and physical constraints so I figured it would be the best.
Maybe this be the cause?
All my tests are in this form:
require File.dirname(FILE) + ‘/…/test_helper’
require File.dirname(FILE) + ‘/…/…/app/models/order’
class OrderTestCase < Test::Unit::TestCase
@order = Order.new(
:user_id => 1,
:total => 10.23,
:date => Date.today,
:status => ‘processing’,
:date_concluded => Date.today,
:user_address_user_id => 3,
:user_address_address_id => 5,
:creation_date => Date.today,
:update_date => Date.today
################ Happy Path
assert @order.valid?, @order.errors.full_messages
The errors I get when running the tests are something like this:
- Error: test_empty_is_primary(AddressTestCase):
ActiveRecord::StatementInvalid: Mysql::Error: Table
‘shopshop_enterprise_test.addresses’ doesn’t exist: SHOW FIELDS FROM
Any guesses? Thanks!
PS: When using postgres as the database engine, everything works fine
with rake test:units! (of course, with the correct changes so the sql
statements can work with postgres)