Railsユニットテストを実行しているときに私の工場の種子にアクセスできません
-
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
ただし、country.allは、テストを実行したときに何も返しません。
rake test:units
なぜこれが起こっているのか誰もが知っていますか?
解決
test_helperにシードが必要で、1回ロードされます。各テスト実行後、データベースはシードデータを含めて一掃されます。毎回種子を積み込むために、このようなものをtest_helper'sに追加します ActiveSupport::TestCase
クラス定義。
class ActiveSupport::TestCase
# this line:
setup { load "#{Rails.root}/db/seeds" }
end
他のヒント
のソースコードをご覧ください rake
宝石。ロードする必要があるようです seeds.rb
各テストファイルに手動でファイルをファイルします。 test_helper.rb
.
所属していません StackOverflow