Я создаю приложение в RoR и внедряю модульное тестирование во всех моих моделях.
Когда я запускаю каждый тест самостоятельно (с помощью ruby test / unit / some_test.rb), все тесты успешны.
Но когда я запускаю все тесты вместе (с помощью теста rake:единицы), некоторые таблицы из обеих баз данных (разработка e test) удалены.
Я использую raw SQL (mysql) для создания таблиц, потому что мне нужны составные первичные ключи и физические ограничения, поэтому я решил, что это будет лучше,Может быть, в этом причина?
Все мои тесты в этой форме:
требуется File.dirname ( FILE ) + '/../test_helper'require File.dirname ( FILE ) + '/../../app/models/order'
класс OrderTestCase
def setup
@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
)
end
################ Happy Path
def test_happy_path
assert @ order.valid ?, @ order.errors.full_messages
end ...
Ошибки, которые я получаю при выполнении тестов, примерно такие:
3) Ошибка: test_empty_is_primary (AddressTestCase): ActiveRecord :: StatementInvalid: Mysql :: Ошибка: таблицы 'shopshop_enterprise_test.addresses' не существует: ПОКАЗАТЬ ПОЛЯ addresses
/test/unit/address_test.rb:9:in new'
/test/unit/address_test.rb:9:in
setup '
Есть предположения?Спасибо!
PS: При использовании postgres в качестве движка базы данных все отлично работает с тестом рейка: единицы измерения!(конечно, с правильными изменениями, чтобы операторы sql могли работать с postgres)