Ошибка после второго запуска спецификации с rspec и autospec - PullRequest
3 голосов
/ 28 января 2010

После установки rspec / ZenTest и запуска autospec он запускает мои спецификации в первый раз, как и ожидалось. После внесения изменений в одну из моих спецификаций и повторного запуска я получаю следующие результаты:

/usr/bin/ruby1.8 /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/bin/spec --autospec /home/schambers/Projects/notebook/spec/models/user_spec.rb -O spec/spec.opts 
/usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/formatter/progress_bar_formatter.rb:17:in `flush': Broken pipe (Errno::EPIPE)
    from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/formatter/progress_bar_formatter.rb:17:in `example_passed'
    from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/reporter.rb:136:in `example_passed'
    from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/reporter.rb:136:in `each'
    from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/reporter.rb:136:in `example_passed'
    from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/reporter.rb:31:in `example_finished'
    from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/example/example_methods.rb:55:in `execute'
    from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/example/example_group_methods.rb:214:in `run_examples'
    from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/example/example_group_methods.rb:212:in `each'
    from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/example/example_group_methods.rb:212:in `run_examples'
    from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/example/example_group_methods.rb:103:in `run'
    from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/example_group_runner.rb:23:in `run'
    from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/example_group_runner.rb:22:in `each'
    from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/example_group_runner.rb:22:in `run'
    from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/options.rb:152:in `run_examples'
    from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/command_line.rb:9:in `run'
    from /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/bin/spec:5

Кто-нибудь сталкивался с этим или знает, что, черт возьми, здесь происходит?

Спасибо

1 Ответ

0 голосов
/ 01 июня 2011

Progress Bar пытается напечатать материал в TTY, чтобы он мог показать вам ваш симпатичный результат прохождения спецификации во время выполнения ваших тестов. Я предполагаю, что разветвление процесса с использованием autospec наследует файловый дескриптор STDOUT, но не может записать в него, поэтому он выдает ошибку канала.

Попробуйте удалить индикатор выполнения из помощника RSpec. В качестве альтернативы попробуйте повторно инициализировать плагин индикатора выполнения после форка.

...