save_and_open_page and spork, spork is loosing test suite / output
当我用spork运行我的rspec测试时,每次我使用capybara的save_and_open_page时,spork都失去了测试套件..或者也许不再输出任何内容了。
查看日志
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | # => 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 |
有什么建议吗?
以某种方式将您的
尝试以下操作:
1 2 3 4 5 6 7 8 9 10 11 | # 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 |
水豚的
我在http://blog.mikecordell.com/2013/08/14/guard-and-capybara's-save_and_open_page.html上找到了描述问题的真正解决方案。特别感谢此解决方案的实际作者。
只需添加:
1 2 3 4 5 6 7 8 9 | 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 |
到