我希望加快我们的rails应用程序测试。我们已经进行了大约600次测试,而且还在不断增加,开始需要很长时间才能运行。
我知道有一些工具可以加速测试。有些我们已经在使用,有些我们将开始使用,我很确定有些我们不能使用,因为我们的rails版本(2.3.8)。
但我来这里是为了一个不同的原因。几周前,我开始使用一台电脑,有一段时间没有运行我们的测试,测试运行得非常非常快。而不是通常的20-30分钟,它在5-7分钟内完成,如果不是更少的话。
一开始我以为出了什么问题,但我跑的次数越多,它开始变得越来越慢,直到我花了20-30分钟才跑完。
现在测试是相同的测试,工具过去和现在都是相同的。除了我有一段时间(几周~)没有运行测试,然后再次运行之外,我想不出有什么显著的变化。它可能是与tmp文件或任何此类文件相关的东西,可以删除或调整以使我们的测试运行得更快?
谢谢你的帮助。
加速测试的一些技巧:
-
确保您正在使用事务性fixture
-
尝试只初始化而不是持久化数据库中的对象
-
把
config.whiny_nils = false
放在你的config/environments/test.rb
上 -
如果你使用的是设计,把
config.stretches = Rails.env.test? ? 1 : 10
放在你的config/initializers/devise.rb
-
升级到1.9.3
PS:刚刚看到你使用的是Rails 2.3.8,所以这对你不起作用,但我将把它留在这里,以防有人想使用:
- 把这个补丁放到你的应用程序中(一定要在升级到3.2时删除它)