我已经按照本教程使用 spork 加速 rspec,并且我使用的是带有 ruby 1.9.2 和 rails 3.2.5 的 win7 x64 机器。一切正常,但测试仍然执行缓慢。由于操作系统不支持分叉,spork 在 Windows 上根本没有做太多事情吗?
我还能做些什么来加快速度吗?
我还发现了这个类似的 SO question,并观看了Corey Haines 关于快速测试的视频。我喜欢这个视频,但是当我们的工具状态(在这种情况下,由于 Rails 启动时间导致的缓慢测试)决定了我们如何构建代码时,我不禁感到有些不对劲。如果不存在那种缓慢的启动时间,那还需要他的方法吗?另一方面,由于测试需要 10 到 30 秒的时间来运行,所以 TDD 的许多好处都失去了,我也看到了他的观点。
如果它是相关的,这里是 spork 的控制台输出,因为 rspec 被执行了几次:
$ bundle exec spork
Using RSpec
-- Starting to fill pool...
Wait until at least one slave is provided before running tests...
** CTRL+BREAK to stop Spork and kill all ruby slave processes **
Spork is ready and listening on 8989!
-- Rinda Ring Server listening for connections...
-- build slave 1...
Preloading Rails environment
-- build slave 2...
Preloading Rails environment
Loading Spork.prefork block...
Loading Spork.prefork block...
Running tests with args ["--color"]...
--> DRb magazine_slave_service: 1 provided...
--> DRb magazine_slave_service: 2 provided...
<-- take tuple(2); slave.run...
-- (2);run done
Done.
-- build slave 2...
Preloading Rails environment
Loading Spork.prefork block...
Running tests with args ["--color"]...
<-- take tuple(1); slave.run...
-- (1);run done
Done.
-- build slave 1...
Preloading Rails environment
Loading Spork.prefork block...
--> DRb magazine_slave_service: 2 provided...