Rails 2.3.2单元测试在使用普通红宝石运行时通过,在使用rake测试运行时失败:单位

时间:2009-06-10 21:15:35

标签: ruby-on-rails unit-testing testing

在单元测试中创建记录时,当使用rake test:units运行时,我得到'ActiveRecord :: RecordInvalid'。当我使用ruby('ruby unit / blah_test.rb')手动运行单元测试时,我没有收到此错误。我已将问题缩小到我模型中存在的验证范围。它是一个包含验证,它实际上是针对不同的模型执行查找以获取有效值。我认为这与没有及时加载的灯具有关,但我的test_helper.rb中确实有'灯具:全部'(我也尝试在单元测试中包含'灯具:全部'。

有没有人对如何进一步缩小范围有任何建议?

感谢。

1 个答案:

答案 0 :(得分:1)

当然,你所看到的东西会适合缺少灯具。使用rake test:units将设置(并清除)测试数据库架构,因此可能无法填充所包含模型的灯具。通过直接调用,您将在上次离开状态时使用测试数据库,这可能包括所包含模型的fixutres。

是否在测试类中再次调用fixtures,可能导致fixtures :all无法启动?

您可以在通过ruby运行测试之前尝试执行rake db:test:prepare,这意味着您正在运行新的测试数据库。如果没有为您所包含的模型加载灯具,这将进一步突出显示。