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

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

我希望加快我们的 Rails 应用程序测试。我们已经进行了大约 600 次测试,而且越来越多,而且开始需要很长时间才能运行。

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

但我来这里的原因不同。几周前,我开始使用一台有一段时间没有运行测试的计算机,而且测试运行得非常非常快。它不是通常需要 20-30 分钟,而是在 5-7 分钟内完成,甚至更少。

起初我以为出了什么问题,但我跑的次数越多,它开始变得越来越慢,直到我再次跑了 20-30 分钟。

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

感谢您的帮助。

最佳答案

加快测试的一些技巧:

  • 确保您使用的是事务固定装置

  • 尝试只初始化而不是持久化数据库中的对象

  • 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 时一定要删除它)

关于ruby-on-rails - 通过删除 tmp 文件(或任何此类文件?)来加速 rspec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8602580/

相关文章:

json - 如何测试 WCF JSON 服务 - 单元测试

vba - Excel 的随机数生成器根本不是随机的?

linux - linux loadrunner 负载生成器

ruby-on-rails - 查找日期时间与今天日期匹配的记录 - Ruby on Rails

java - 如何使用 JUnit 对一个 Java 类中的方法进行单元测试,而无需完成模块中的其他类?

javascript - javascript 可以从单独的方法中监听确认对话的结果吗?

unit-testing - 如何干净地对自定义 ValueResolver ResolveCore(...) 方法进行单元测试

testing - 移动测试自动化的最佳工具

ruby-on-rails - 验证关联对象的最大数量

ruby-on-rails - Java 没有发现类定义错误 elasticsearch?