【问题标题】:Load rails fixtures before classes are loaded在加载类之前加载 rails 固定装置
【发布时间】:2016-03-24 18:21:00
【问题描述】:

我的 Rails 项目中有一些类已“注册”,并带有从数据库中读取的属性。但是,当我运行“rake test”时,会在 SQLLite 中创建固定装置之前加载类。结果,这些类被“注册”为空值,导致我的测试失败。

通过运行我的 Rails 服务器进行手动测试工作得很好,所以我认为我的代码逻辑没有问题。另外,我的装置是正确的。

如何在实例化类和模型之前更改加载装置的顺序。

【问题讨论】:

  • 我在尝试将旧项目从 Rails 2.3 升级到 Rails 3.0 时遇到此问题。如果在没有 Rake 的情况下独立运行,测试工作正常,但如果使用 rake test TEST=[test_path] 运行测试(使用单元、功能和集成设置)运行测试三次(使用单元、功能和集成设置),则测试在第一次运行时失败,但在后两次运行时通过。我在test_helper 和测试文件本身中使用fixtures :all
  • 您找到解决方案了吗?

标签: ruby-on-rails ruby-on-rails-3 rake fixtures rake-test


【解决方案1】:

rake test 如果您指定 fixtures :all,则加载固定装置。运行rake test --trace 看看幕后发生了什么。我认为没有提及fixtures :all就不会加载固定装置 尝试rake db:fixtures:load 看看是否会引发任何错误。

【讨论】:

  • 这无济于事,因为 test_helper 和测试类都是在加载模型和类之后才加载的。
  • rake test 如果您指定 fixtures :all 则加载固定装置
  • 抱歉,您没有抓住重点。夹具加载正常,这不是问题。问题是加载类后加载固定装置。我需要在加载类之前加载固定装置。
猜你喜欢
  • 1970-01-01
  • 2012-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多