Rails 2.3.2unit testing在使用普通ruby运行时通过,在使用rake测试运行时失败:单位

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

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

谢谢。

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

测试类中是否还有另一个可能导致fixtures :all调用fixtures :all没有启动?

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