通过删除tmp文件(或任何此类?)来加速rspec?

时间:2011-12-22 10:31:33

标签: ruby-on-rails unit-testing testing rspec

我正在寻求加速我们的rails应用程序测试。我们已经进行了大约600次测试,它越来越高,并且开始需要很长时间才能运行。

我知道有一些工具可以加速测试。一些我们已经在使用,有些我们将开始使用,并且我非常肯定我们无法使用由于我们的rails版本(2.3.8)。

但我出于另一个原因来到这里。几周前,我开始使用一台没有运行测试的电脑,测试运行的速度非常快。它没有采取通常的20-30分钟,而是在5-7分钟内完成,如果不是更少的话。

起初我觉得有些不对劲,但是我跑的次数越来越多 - 它开始变得越来越慢,直到我花了20-30分钟再跑。

现在测试是相同的测试,工具是相同的。除了事实上我没有运行测试一段时间(几周〜)然后再次运行之外,我无法想象任何显着变化的事情。它可能是与tmp文件或任何此类相关的东西可以被删除或调整以使我们的测试运行得更快吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

加速测试的一些提示:

  • 确保您使用的是事务性灯具

  • 尝试仅初始化而不是在数据库中保留对象

  • config.whiny_nils = false放在config/environments/test.rb

  • 如果您使用的是Devise,请将config.stretches = Rails.env.test? ? 1 : 10放在config/initializers/devise.rb

  • 升级至1.9.3

PS:刚刚看到你正在使用Rails 2.3.8,所以这对你不起作用,但我会把它留在这里以防有人想要使用:

  • this patch放入您的应用程序中(确保在升级到3.2时将其删除)