Не может получить доступ к семенам на своих заводах при запуске рельсов

StackOverflow https://stackoverflow.com/questions/4654321

Вопрос

У меня есть фабрики, которые включают некоторые данные настройки. Например:

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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top