2

我有一个糟糕的 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 gem 问题应该在某个地方得到解决。

4

2 回答 2

1

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

于 2009-04-23T15:29:18.277 回答
0

如果您能够在不加载所有 gem 的情况下运行您的应用程序,这可能很好地表明您一开始并没有真正使用 gem,或者您的测试不充分。

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

于 2009-04-24T17:49:16.123 回答