在单元测试中创建记录时,当使用rake test:units运行时,我得到'ActiveRecord :: RecordInvalid'。当我使用ruby('ruby unit / blah_test.rb')手动运行单元测试时,我没有收到此错误。我已将问题缩小到我模型中存在的验证范围。它是一个包含验证,它实际上是针对不同的模型执行查找以获取有效值。我认为这与没有及时加载的灯具有关,但我的test_helper.rb中确实有'灯具:全部'(我也尝试在单元测试中包含'灯具:全部'。
有没有人对如何进一步缩小范围有任何建议?
感谢。
答案 0 :(得分:1)
当然,你所看到的东西会适合缺少灯具。使用rake test:units
将设置(并清除)测试数据库架构,因此可能无法填充所包含模型的灯具。通过直接调用,您将在上次离开状态时使用测试数据库,这可能包括所包含模型的fixutres。
是否在测试类中再次调用fixtures
,可能导致fixtures :all
无法启动?
您可以在通过ruby运行测试之前尝试执行rake db:test:prepare
,这意味着您正在运行新的测试数据库。如果没有为您所包含的模型加载灯具,这将进一步突出显示。