2012-07-14 67 views
3

我已经开始学习使用在Windows 7上运行的Ruby on Rails,并且运行测试的时间很痛苦,我在想我是否可以加快速度。 现在我正在使用默认的测试框架(从ActionController继承),SQLite数据库和webrick web服务器。如何加速在Windows上的轨道测试红宝石?

虽然单元和功能测试报告的运行时间少于2秒,但从运行命令行到完成的测试实际上是40秒。

朋友推荐我使用警卫。看起来它会帮我在保存时立即开始测试,但似乎真正的成本是启动网络服务器或数据库。我想知道是否可以更好地设置apache或mysql并在本地使用它们。

无论如何,人们有什么技巧可以加速Windows上的ruby测试?我试着在Amazon EC2 linux micro实例上运行测试(再次使用webrick和sqlite),并且启动时间很长(尽管我没有时间)。

我试过“耙测试 - 跟踪”。有一个显著的停顿:

  • 立即输出
  • 的第一行outputing之间“执行环境”和“执行DB:abort_if_pending_migrations”之前
  • 之间“执行测试:单位”和“运行选项:“

    第一次暂停似乎更糟。

+0

你不需要启动任何网络服务器来运行单位和功能。尝试运行'耙测试 - 跟踪',看看你是否可以找出它挂在哪里 – olore 2012-07-14 22:15:35

+0

感谢olore,我跑过踪迹,并注意到停顿发生的地方。 – 2012-07-22 21:25:17

回答

1

最好的办法是使用spork,它现在可以在Windows中使用。它通过预先填充一个准备好的进程池(称为“杂志”策略)在窗口上运行。其结果是Web服务器启动时间大大缩短。

如果Windows上的运行轨真是瓶颈,那么您可以使用VirtualBox运行虚拟机并运行Ubuntu的一个实例,并在虚拟机中的您的rails项目上工作。

+0

仅供参考我通过电子邮件发送了“spork-rails”的老维护者之一,他们告诉我使用'spring'代替。 – 2016-09-28 00:46:35

+1

@KaMok谢谢,但似乎'春'不支持Windows。从文档'Spring大量使用Process.fork,所以无法在不支持分叉的平台(Windows,JRuby)上加快速度“。 – Dty 2016-09-28 01:40:05

+1

是的,我意识到了。我现在没有使用任何东西来加速我的测试,做TDD非常痛苦。几个月来一直围绕这个话题进行搜索 – 2016-09-28 02:25:02