强制在每次运行时使用Spork重新加载application_controller

时间:2011-05-13 09:33:47

标签: ruby-on-rails rspec spork

我正在使用Spork来加速我的RSpec测试。不幸的是,我的application_controller.rb在每次运行时都没有重新加载,因此我必须在修改时重新启动Spork。有没有办法在每次测试运行时强制重新加载?我想我需要在Spork.each_run中添加一些额外的行。

2 个答案:

答案 0 :(得分:0)

尝试将ActiveSupport::Dependencies.clear放入Spork.each_run块。当你完成autotesting application_controller.rb后我会删除它,虽然新的延迟不应该太糟糕。

答案 1 :(得分:0)

我有同样的问题,但Spork旨在自动重新加载application_controller.rb而不做任何更改。所以我挖了它,正如我在blog post的评论中提到的那样,我跑了spork --diagnose。它列出了spork最初加载的所有文件以及每个文件加载方式的回溯。这告诉我,在我的应用程序中,我碰巧有一个初始化程序,它引用了ApplicationController的子类,因此它最初正在加载。一旦我破坏了这个依赖关系,我的application_controller.rb在使用Spork时就开始在每次测试运行时正确重新加载。

相关问题