Охранник разбивает Spork при использовании guard-spork - PullRequest
5 голосов
/ 20 октября 2011

Я следил за скринкастом «Как я тестирую» на 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.

Когда я пытаюсь запустить spork в отдельном окне терминала, это не помогает, так как он убивается сразу после запуска guard

$ spork
Using RSpec
Preloading Rails environment
Loading Spork.prefork block...
Spork is ready and listening on 8989!
Killed: 9

Если я просто запускаю spork, а затем пытаюсь rspec . --drb, он работает просто отлично. Вот ссылка на гист с моим Gemfile, Guardfile и spec_helper.rb

Ответы [ 2 ]

10 голосов
/ 10 мая 2012

Вы должны изменить:

guard 'spork', :cucumber_env => { 'RAILS_ENV' => 'test' }, 
               :rspec_env => { 'RAILS_ENV' => 'test' }, 
               :wait => 120

до:

guard 'spork', :rspec_env => { 'RAILS_ENV' => 'test' }, 
                cucumber: false, 
                test_unit: false 
5 голосов
/ 29 октября 2011

Эта проблема на самом деле вызвана guard убийством spork еще до того, как она может даже загрузиться, что является проблемой на моем медленном MacBook pro.

Решением является увеличениевремя ожидания с :wait => 120 в Guardfile, например

guard 'spork', :cucumber_env => { 'RAILS_ENV' => 'test' }, 
               :rspec_env => { 'RAILS_ENV' => 'test' }, :wait => 120
    ....
...