2015-07-08 3 views
0

Я добавил зависимость от order и order_items приборов (которые уже существуют), но каждый раз, когда я запускаю свой рабочий стол rspec, я получаю следующую ошибку.Ошибка Mysql2 при использовании RSpec-устройств

ActiveRecord::StatementInvalid: 
     Mysql2::Error: Table 'inventory_test10.order_packages' doesn't exist: SHOW FULL FIELDS FROM `order_packages` /*controller:,action:,line:*/ 

У меня есть order, который имеет много order_items и много order_packages. order_items также относятся к order_packages. Таким образом, я могу сделать:

order.order_items.each do |oi| 
    put oi.order_package.status 
end 

Оригинальный вопрос в том, что статус не был признан за нулевой класс, потому что order_packages.yml приспособление никогда не было создано. Я пробовал несколько задач rake, но я не очень хорошо знаком с приборами, миграциями, задачами rake и т. Д., И я не уверен, что случайно вызвал ошибку при запуске нескольких taks. Ниже приведен отрывок из блога, который предупрежден о запуске команду несколько раз - http://brandonhilkert.com/blog/using-rails-fixtures-to-seed-a-database/:

грабли БД: светильники: нагрузка светильникам = credit_card_types

Слово предупреждения, если мы запустим эту команду несколько раз, он будет посещать таблицу несколько раз. Это не идемпотент.

Другие задачи, которые я побежал:

  • светильникам = заказов; грабли БД: светильники: нагрузка
  • грабли DB: светильники: дамп (не работает - ошибка)
  • грабли БД: светильники: падение (не работает - ошибка)

Спасибо заранее за какие-либо предложения!

+0

Вы выполнили миграцию в тестовой среде? – Ninigi

+0

я сделал. Затем я вошел в тестовую рельсовую консоль и не нашел никаких посеянных данных. – kdub

ответ

0

Ваш тестовый фреймворк должен автоматически загружать светильники в начале тестового прогона и удалять их в конце тестового прогона. Вам не нужно самостоятельно загружать светильники.

Светильники загружают данные в таблицы; они не изменяют структуру базы данных. Миграции могут изменять базу данных, создавая/удаляя таблицы, добавляя/удаляя столбцы и т. Д. Если у вас возникла проблема с отсутствующей таблицей, это очень похоже на проблему миграции.

Я рекомендую обзор Guide to Testing Rails Applications и (если вы используете RSpec) rspec-rails documentation, которые объясняют эти понятия более подробно.

Смежные вопросы