2013-04-09 15 views
13

Wenn ich meine rspec Tests mit Spork laufen, jedes Mal, wenn ich Capybara des save_and_open_page verwenden, Spork verliert die Testsuite .. oder vielleicht mehr ausgegeben alles tut ...save_and_open_page und Spork, Spork verliert Testsuite/Ausgabe

Siehe das Protokoll

# => 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 

Irgendwelche Vorschläge?

+0

ich ein Problem auf Github erstellt: https://github.com/sporkrb/spork/issues/226 – Lichtamberg

Antwort

1

Irgendwie wird Ihr STDOUT durch einen anderen Puffer ersetzt. Was auch immer von Capybara an STDOUT geschrieben wird, wird ignoriert oder woanders konsumiert.

Versuchen Sie Folgendes:

# 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 

Capybara der save_and_open_page verwendet Launchy gem. So glaube ich, dass die STDOUT und STDERR in einem dieser Edelsteine ​​stubbed sind.

+0

hm ich dies weiter investiate werde. .. danke für deine antwort, ich werde es markieren, wenn ich mehr weiß! – Lichtamberg

+0

@Lichtamberg, habe ich die obige Lösung ausprobiert und konnte es nicht zum Laufen bringen. Konnten Sie dieses Problem umgehen? Ich würde schätzen alle Hinweise .. – lnreddy

+0

Nein, es hat auch nicht funktioniert für mich .. – Lichtamberg