Ruby on rails 如何在windows上加速RubyonRails测试?

Ruby on rails 如何在windows上加速RubyonRails测试?,ruby-on-rails,windows,Ruby On Rails,Windows,我已经开始学习使用运行在Windows7上的RubyonRails,运行测试的时间很痛苦,我想知道我是否可以加快速度。 现在,我正在使用默认的测试框架(继承自ActionController),以及一个SQLite数据库和webrick web服务器 虽然单元测试和功能测试报告的运行时间不到2秒,但从我从命令行运行测试到完成测试的时间实际上是40秒 一位朋友建议我使用警卫。这看起来有助于在我保存后尽快启动测试,但实际成本似乎是启动Web服务器或数据库。我想知道是否最好设置apache或mysql

我已经开始学习使用运行在Windows7上的RubyonRails,运行测试的时间很痛苦,我想知道我是否可以加快速度。 现在,我正在使用默认的测试框架(继承自ActionController),以及一个SQLite数据库和webrick web服务器

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

一位朋友建议我使用警卫。这看起来有助于在我保存后尽快启动测试,但实际成本似乎是启动Web服务器或数据库。我想知道是否最好设置apache或mysql并在本地使用它们

不管怎样,人们有什么建议来加速windows上的RubyonRails测试?我尝试在AmazonEC2LinuxMicro实例上运行测试(同样使用webrick和sqlite),启动时间很长(尽管我没有计时)

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

  • 紧靠第一行输出之前
  • 在输出“Execute environment”和“Execute db:abort_if_pending_migration”之间
  • 在“执行测试:单元”和“运行选项”之间:

    第一次停顿似乎更糟

您最好的选择是使用现在可以在Windows中使用的。它通过预先填充就绪进程池(称为“杂志”策略)在windows上运行。结果是Web服务器的启动时间大大缩短


如果在Windows上运行rails确实是一个瓶颈,那么您可以使用运行虚拟机,运行Ubuntu实例,并在VM中处理rails项目

运行单元和函数不需要启动任何Web服务器。试着运行
rake测试--trace
,看看你是否能找出它挂在什么地方,我运行了跟踪并记录了暂停发生的位置。仅供参考,我给gem
spork-rails
的一位老维护人员发了电子邮件,他们告诉我改用
spring
。@KaMok谢谢,但似乎
spring
不支持Windows。从文档
Spring大量使用Process.fork,因此无法在不支持forking的平台(Windows、JRuby)上提供加速。
是的,我意识到了。我现在没有使用任何东西来加速我的测试,做TDD是相当痛苦的。围绕这个主题搜索了几个月。@KaMok我想研究一下如何使用虚拟机或docker。我自己在Mac上做rails工作,这很好。谢谢你的建议。事实上,我今天不得不在我的Windows10机器上工作,rails在rails 5上启动得非常快。我在上面做了一个stackoverflow线程,因为我不太理解它。我在Windows7上的时间从17秒增加到Windows10上的5秒。