Ruby On Rails: тестирование удаляет таблицы - PullRequest
1 голос
/ 02 августа 2010

Я создаю приложение в 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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...