如何将Rails/Rspec在Windows上的加载时间优化到秒级?(带或不带spork)
背景: 我使用的是Engine Yard的RailsInstaller 2软件包,即Ruby 1.9.2-p290和 Windows 7 x64上的Rails 3.1.1 问题: 在尝试自动测试和spork按预期工作时和之后,rspec报告测试在几秒钟内完成,但实际消耗的时间远大于此,接近半分钟,这与屏幕广播中观察到的分秒响应相差甚远。我知道这大部分是由于Rails的加载时间(spork在预加载阶段花费的时间也很明显),以及JRuby的速度慢(与Ruby on linux相比),但是对于TDD来说,平均每个rspec运行15+s(考虑到加载时间,有无spork)是很难维持的。除了切换到Linux之外,是否还有其他方法可以将其缩减到几秒钟的量级如何将Rails/Rspec在Windows上的加载时间优化到秒级?(带或不带spork),windows,ruby-on-rails-3,optimization,rspec,spork,Windows,Ruby On Rails 3,Optimization,Rspec,Spork,背景: 我使用的是Engine Yard的RailsInstaller 2软件包,即Ruby 1.9.2-p290和 Windows 7 x64上的Rails 3.1.1 问题: 在尝试自动测试和spork按预期工作时和之后,rspec报告测试在几秒钟内完成,但实际消耗的时间远大于此,接近半分钟,这与屏幕广播中观察到的分秒响应相差甚远。我知道这大部分是由于Rails的加载时间(spork在预加载阶段花费的时间也很明显),以及JRuby的速度慢(与Ruby on linux相比),但是对于TDD来
编辑:这个问题的措辞有问题吗?这可能是目前最好的。Windows上相同的设置在Linux上只需几秒钟。我还没有在Ruby 1.9.3上进行测试,但这不太可能显著改变这种情况。Rails加载时间相当长。 正如你提到的,这可能是TDD杀手 有几种方法可以解决这个问题:
- 您可以独立地测试类,而不依赖于rails
- 测试将运行得非常快,因为您不加载rails,只加载特定的必需类
- 它驱使您走向SRP(单一责任原则),其中每个类/模块 只占整个系统的一小部分
- 它鼓励干燥(不要重复你自己)-当你有微小的碎片时,它更容易重复使用
- 您正在使用DI(依赖项注入)为您的小对象提供上下文,这使它们更易于测试和重用
我在VirtualBox中运行Ubuntu,并将项目目录配置为共享文件夹。这意味着Ubuntu box总是能看到我的代码的最新版本,因此我可以享受linux CLI时间,并且仍然保持Windows作为我的开发平台。到目前为止,我只使用了大约一个星期的设置,但我还没有遇到任何缺点。谢谢你的提示,但现在我认为这是一个失败的原因,因为即使在linux上,我发现自己一直面临优化(甚至最小化)javascript测试的挑战,这往往是非常缓慢,但占了整个套房的一大部分。尽管我对Windows有着丰富的经验,但我认为Windows只足以满足最初的学习曲线(直到教程结束)。这并不是对你问题的回答,但我尝试在Windows上使用Rails,速度很慢,难度很大。为什么要让它变得比需要的更难?我建议安装Ubuntu(可以在同一台机器上完成)。我在2.5秒内运行单个测试。@甚至我开始在Windows上学习Rails,我仍然使用它进行各种用途,然后转移到Linux平台进行认真的工作。不过,有更多的选择总是好的。Ruby 1.9.3实际上要快得多。是的,但严格来说,这并不能解决本机Windows上的速度问题。使用虚拟机是一个切实可行的解决方案,但对于另一个问题(即Windows速度慢,但我需要为其他目的运行它),我完全同意。我只是想借此机会把这个选项放在那里,以防像我这样的人正在寻找一个实际的解决方案。这个解决方案类似于在windows上使用Vagrant。很好用!