运行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.所有人只将所有国家从查找表分配到该特定事件。在我的测试助手中使用此行进行测试之前,我可以通过加载种子来包括所有国家 /地区:
require "#{Rails.root}/db/seeds.rb"
在进行单个单元测试时,这效果很好:
ruby test/unit/event_test.rb
但是,当我使用测试运行测试时,所有乡村都没有返回:
rake test:units
有人知道为什么会发生这种情况吗?
解决方案
您需要在test_helper中的种子,它已加载一次。将每个测试运行数据库删除后,包括种子数据。为了使种子每次加载,请在您的test_helper上添加类似的东西 ActiveSupport::TestCase
类定义。
class ActiveSupport::TestCase
# this line:
setup { load "#{Rails.root}/db/seeds" }
end
其他提示
查看有关的源代码 rake
宝石。看起来您必须加载您的 seeds.rb
在每个测试文件中手动文件,或从 test_helper.rb
.
不隶属于 StackOverflow