我有一个糟糕的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的宝石问题应该在某处解决。
答案 0 :(得分:1)
你如何使用这些宝石?您config/environment.rb
的某个地方是否有要求?如果是这样,您可以将这些需求添加到开发和生产环境文件中,但不能添加到测试环境文件中。
答案 1 :(得分:0)
如果你能够在不加载所有宝石的情况下运行你的应用程序,那么这可能是一个很好的迹象,表明你没有真正使用宝石,或者你的测试不够。
但是,正确的方法是将gem加载到开发和生产特定的环境文件中。