Jak*_*old 5 ruby rspec guard spork
我跟着RailsCasts的"我如何测试"截屏视频,然而我遇到了spork问题
$ guard
Guard is now watching at '/Users/darth/projects/auth-before'
Starting Spork for Test::Unit & RSpec
Couldn't find a supported test framework that begins with 'testunit'
Supported test frameworks:
( ) Cucumber
(*) RSpec
Legend: ( ) - not detected in project (*) - detected
Using RSpec
Preloading Rails environment
Loading Spork.prefork block...
Spork is ready and listening on 8989!
ERROR: Could not start Spork server for Test::Unit & RSpec. Make sure you can use it manually first.
# here I get growl notification "Test::Unit & RSpec NOT started
Guard::RSpec is running, with RSpec 2!
Running all specs
Running tests with args ["--color", "--format", "progress", "--format", "Guard::RSpec::Formatter::NotificationRSpec", "--out", "/dev/null", "--require", "/Users/darth/.rvm/gems/ruby-1.9.2-p290/gems/guard-rspec-0.5.0/lib/guard/rspec/formatters/notification_rspec.rb", "spec"]...
.
Finished in 14.47 seconds
1 example, 0 failures
Done.
Run Code Online (Sandbox Code Playgroud)
当我尝试spork
在一个单独的终端窗口中运行时,它没有帮助,因为它在我运行后立即被杀死guard
$ spork
Using RSpec
Preloading Rails environment
Loading Spork.prefork block...
Spork is ready and listening on 8989!
Killed: 9
Run Code Online (Sandbox Code Playgroud)
如果我只是跑spork
,然后尝试rspec . --drb
,它的工作正常.这里是我的Gemfile,Guardfile和spec_helper.rb的gist链接
小智 10
你应该改变:
guard 'spork', :cucumber_env => { 'RAILS_ENV' => 'test' },
:rspec_env => { 'RAILS_ENV' => 'test' },
:wait => 120
Run Code Online (Sandbox Code Playgroud)
至:
guard 'spork', :rspec_env => { 'RAILS_ENV' => 'test' },
cucumber: false,
test_unit: false
Run Code Online (Sandbox Code Playgroud)
这个问题实际上是由它甚至可以加载之前的guard
杀戮引起的spork
,这对我速度较慢的 MacBook pro来说是一个问题.
解决的办法是增加等待时间:wait => 120
中Guardfile
,例如,
guard 'spork', :cucumber_env => { 'RAILS_ENV' => 'test' },
:rspec_env => { 'RAILS_ENV' => 'test' }, :wait => 120
....
Run Code Online (Sandbox Code Playgroud)