我有一个名称空间模型,即Billing::Plan
。所以我把它的夹具放在test/fixtures/test/billing/plan.yml
下面。 (实际上,将轨道生成器放在那里,所以我认为它是约定优于配置愉悦: - )
现在,当我运行单个测试时,它可以工作,但是当我尝试使用rake test
或guard
运行我的所有测试套件时,夹具加载失败并出现此错误
ActiveRecord::StatementInvalid: ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "plans" does not exist
重要的部分是
ERROR: relation "plans" does not exist
似乎fixtures :all
文件中的test_helper.rb
命令无法理解关系名称是billing_plans
而不是plans
。
为什么?
答案 0 :(得分:0)
我想到了fixtures :all
does。
需要调用set_fixture_class
才能正确地将表名分配给命名空间的装置。
所以我解决了我的问题... ...
# test/test_helper.rb
module ActiveSupport
class TestCase
fixtures :all
set_fixture_class 'billing/plan' => Billing::Plan # <= ...this line!
end
end