Как вы можете заставить rspec печатать обратные следы неудачных тестов *по мере* его выполнения?

Выполнение нашего теста занимает довольно много времени, и всегда есть 5-10-минутный период, когда мы знаем, какой тест не прошел, но мы не можем увидеть сообщение об ошибке или трассировку, пока пакет не завершит работу. Было бы более эффективно видеть обратные следы по мере их возникновения. Это возможно?


person Brian Armstrong    schedule 09.01.2013    source источник


Ответы (2)


У вас есть два варианта:

1) быстро выходит из строя

# spec/spec_helper.rb
RSpec.configure do |c|
  c.fail_fast = true
end

..или используйте его из командной строки

$ bundle exec rspec spec/ --fail-fast
.F

Failures:
  1) Swinger should set the Capybara driver
     Failure/Error: Capybara.current_driver.should_not == :rack_test

Finished in 0.00479 seconds
2 examples, 1 failure

По сути, эта опция при ошибке остановит набор тестов и напечатает ошибку.

2) использовать гем rspec-instafail

https://github.com/grosser/rspec-instafail

Этот драгоценный камень мгновенно покажет ошибочную спецификацию и продолжит работу со спецификациями.

person luacassus    schedule 09.01.2013
comment
fail_fast близок, но он останавливает выполнение остальных тестов после первого сбоя. Лучше, чтобы они продолжали работать, поэтому rspec-instafail отлично сработал! (после краткого троллинга в сочетании с Guard github.com/grosser/rspec-instafail/issues /13) Огромное спасибо! Вы только что сэкономили мне кучу времени. - person Brian Armstrong; 18.01.2013

Я использую Fuubar, чтобы получать немедленные сообщения об ошибках и обратные трассировки во время работы пакета, а также получать более значимый индикатор. насколько далеко продвинулся мой набор тестов.

person Paul Fioravanti    schedule 09.01.2013
comment
Фуубар тоже выглядит довольно круто. Спасибо! - person Brian Armstrong; 18.01.2013