2013-04-09 2 views
13

Когда я запускаю RSpec тесты с Spork, каждый раз, когда я использую save_and_open_page водосвинку'S, Spork теряет тестовый пакет .. или, может быть, не делает вывода ничего больше ...save_and_open_page и Spork, Spork теряет тестовый набор/выход

См. Журнал

# => without save_and_open_page 
09:04:24 - INFO - Spork server for RSpec, Test::Unit successfully started 

09:04:24 - INFO - Guard::RSpec is running 
09:04:24 - INFO - Running all specs 
Running tests with args ["--drb", "-f", "progress", "-r", "/Users/myuser/.rvm/gems/ruby-1.9.3-p392/gems/guard-rspec-2.5.2/lib/guard/rspec/formatter.rb", "-f", "Guard::RSpec::Formatter", "--failure-exit-code", "2", "spec"]... 
................ 

Finished in 4.1 seconds 
16 examples, 0 failures 


Randomized with seed 50331 

Done. 

# => with save_and_open_page, no .... are shown anymore 
09:04:29 - INFO - Guard is now watching at '/Users/myuser/coding/myproject' 
09:04:39 - INFO - Running: spec/features/registration/registration_process_spec.rb 
Running tests with args ["--drb", "-f", "progress", "-r", "/Users/myuser/.rvm/gems/ruby-1.9.3-p392/gems/guard-rspec-2.5.2/lib/guard/rspec/formatter.rb", "-f", "Guard::RSpec::Formatter", "--failure-exit-code", "2", "spec/features/registration/registration_process_spec.rb"]... 
Done. 

# => without save_and_open_page, also no .... anymore (after restart it works again) 
[1] guard(main)> Running tests with args ["--drb", "-f", "progress", "-r", "/Users/myuser/.rvm/gems/ruby-1.9.3-p392/gems/guard-rspec-2.5.2/lib/guard/rspec/formatter.rb", "-f", "Guard::RSpec::Formatter", "--failure-exit-code", "2", "spec/features/registration/registration_process_spec.rb"]... 
Done. 

    # => here i added some errors into my code... still no error message shown... 
[1] guard(main)> Running tests with args ["--drb", "-f", "progress", "-r", "/Users/myuser/.rvm/gems/ruby-1.9.3-p392/gems/guard-rspec-2.5.2/lib/guard/rspec/formatter.rb", "-f", "Guard::RSpec::Formatter", "--failure-exit-code", "2", "spec/features/registration/registration_process_spec.rb"]... 
Done. 

# only works again after restarting spork 

Любые предложения?

+0

Я создал вопрос о GitHub: https://github.com/sporkrb/spork/issues/226 – Lichtamberg

ответ

1

Как-то ваш STDOUT заменяется на другой буфер. Поэтому все, что написано Capybara в STDOUT, игнорируется или поглощается где-то в другом месте.

Попробуйте следующее:

# Add global before/after blocks 
before :each do 
    @old_stdout, @old_stderr = STDOUT, STDERR 
end 

after :each do 
    STDOUT, STDERR = @old_stdout, @old_stderr 

    # Some gems use $stdout and $stderr, instead of STDOUT and STDERR, replace those too 
    $stdout, $stderr = @old_stdout, @old_stderr 
end 

Капибара-х save_and_open_page использует Launchy камень. Поэтому я считаю, что STDOUT и STDERR получают осколок в одном из этих драгоценных камней.

+0

гм я буду investiate это дальше. .. спасибо за ваш ответ, я помечаю его, когда узнаю больше! – Lichtamberg

+0

@Lichtamberg, я попробовал вышеуказанное решение и не смог заставить его работать. Вы могли обойти эту проблему? Я был бы признателен за любые указатели .. – lnreddy

+0

Нет, это тоже не сработало для меня .. – Lichtamberg

0

Я нашел настоящее решение для описанной проблемы на http://blog.mikecordell.com/2013/08/14/guard-and-capybara's-save_and_open_page.html. Особая благодарность фактическому автору этого решения.

Просто добавьте:

RSpec.configure do |config| 
    config.before(:each) do 
    @old_stdout, @old_stderr = STDOUT, STDERR 
    end 

    config.after(:each) do 
    $stdout, $stderr = @old_stdout, @old_stderr 
    end 
end 

к spec_helper.rb

Смежные вопросы