Gems减慢Rails测试启动速度,我可以有选择地禁用这些吗?

时间:2009-04-23 14:30:44

标签: ruby-on-rails ruby optimization testing startup

我有一个糟糕的Rails测试启动时间。运行可能需要2秒钟运行的单个功能测试时,从执行到返回命令行的总时间可能长达10-15秒。

我知道有两颗宝石肯定会挡路。 Facebook和Flickr的宝石(Facebooker,Flickraw)。

运行任何测试时,Facebooker将始终打印以下消息:

/vendor/gems/facebooker-0.9.5/lib/facebooker.rb:23: warning: already initialized constant VERSION

Flickraw似乎每次都会建立网络连接,以检索我认为可以进行API调用的列表。

我可以在测试期间选择性地关闭这些宝石吗?我真的希望我的测试运行尽可能接近实际测试运行的时间。此外,我已经尝试了rails_test_server gem并且遇到了一些困难,因为这是一个非常大的项目,并且gem正在项目的某个地方遇到一些我尚未解决的冲突。但我相信这个Facebook和Flickr的宝石问题应该在某处解决。

2 个答案:

答案 0 :(得分:1)

你如何使用这些宝石?您config/environment.rb的某个地方是否有要求?如果是这样,您可以将这些需求添加到开发和生产环境文件中,但不能添加到测试环境文件中。

答案 1 :(得分:0)

如果你能够在不加载所有宝石的情况下运行你的应用程序,那么这可能是一个很好的迹象,表明你没有真正使用宝石,或者你的测试不够。

但是,正确的方法是将gem加载到开发和生产特定的环境文件中。