ruby-on-rails - Rails 2.3.2 单元测试在使用普通 ruby​​ 运行时通过,在使用 rake 测试 :units 运行时失败

标签 ruby-on-rails unit-testing testing

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

有人对我如何尝试进一步缩小范围有任何建议吗?

谢谢。

最佳答案

当然,您所看到的与缺少的固定装置相吻合。使用 rake test:units 将设置(并清除)测试数据库模式,因此您包含的模型的固定装置可能不会被填充。通过直接调用,您将使用上次离开时​​的状态的测试数据库,其中可能确实包含所包含模型的修复程序。

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

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

关于ruby-on-rails - Rails 2.3.2 单元测试在使用普通 ruby​​ 运行时通过,在使用 rake 测试 :units 运行时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/978191/

相关文章:

ruby-on-rails - 当我重命名列时,如何确保我的 View 没有在我的测试套件中使用旧名称引用该列?

ruby-on-rails - 在Rails中使用Amazon Dynamo DB时如何实现分页

css - Rails 3.2.x - 无法在本地主机上设置字体

unit-testing - Yii2 ActiveRecord 用 Mockery 进行模拟

mysql - 如何使用mysql查询使用group by查找该组使用的所有UNIQ标题

java - 如何在 Maven 中排除特定的单元测试

javascript - 如何使用 Mocha 测试私有(private)功能?

testing - 如何使用 chromedriver 测试多个版本的谷歌浏览器?

maven - 如果指定了 "-DskipTests"或 "-Dmaven.test.skip=true",如何跳过 Maven 插件执行?

c - 使用 CUNIT 进行测试 - 演练分析/代码覆盖率