Не могу получить доступ к семенам на моих фабриках при запуске модульных тестов Rails - PullRequest
0 голосов
/ 11 января 2011

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

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

Однако Country.all ничего не возвращает, когда я запускаю тест с использованием:

rake test:units

Кто-нибудь знает, почему это происходит?

Ответы [ 2 ]

1 голос
/ 11 января 2011

Вам нужны семена в test_helper, он загружается один раз.После каждого тестового прогона база данных стирается, включая заполненные данные.Чтобы загружать семена каждый раз, добавьте что-то вроде этого в определение класса ActiveSupport::TestCase вашего test_helper.

class ActiveSupport::TestCase
  # this line:
  setup { load "#{Rails.root}/db/seeds" }
end
0 голосов
/ 11 января 2011

Посмотрите на исходный код для драгоценного камня rake.Похоже, вам придется загружать файл seeds.rb вручную в каждом тестовом файле или, что еще лучше, из test_helper.rb.

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