Не может получить доступ к семенам на своих заводах при запуске рельсов
-
09-10-2019 - |
Вопрос
У меня есть фабрики, которые включают некоторые данные настройки. Например:
Factory.define :event do |event|
event.name { Factory.next(:email) }
event.blurb "Test event blurb"
event.association(:owner, :factory => :user)
event.countries Country.all
end
Country.all только назначает все страны из таблицы поиска на это конкретное событие. Я включаю всех стран, загружая семена, прежде чем запустить свои тесты с этой линией в моем тесте помощника:
require "#{Rails.root}/db/seeds.rb"
Это отлично работает при запуске индивидуальных тестов подразделения:
ruby test/unit/event_test.rb
Однако страна. Все ничего не возвращается, когда запускаю тест, используя:
rake test:units
Кто-нибудь знает, почему это происходит?
Решение
Вам нужны семена в Test_Helper, он загружен один раз. После того, как каждая тестовая база данных прорастана, включая высеванные данные. Чтобы сделать семена загрузки каждый раз, добавьте что-то вроде этого на ваш Test_Helper's ActiveSupport::TestCase
определение класса.
class ActiveSupport::TestCase
# this line:
setup { load "#{Rails.root}/db/seeds" }
end
Другие советы
Посмотрите на исходный код для rake
драгоценность Похоже, вам придется загрузить seeds.rb
файл вручную в каждом тестовом файле или лучше, из test_helper.rb
.