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

Мое впечатление о том, как должно работать автотестирование (на основе вики github cucumber, и другие вещи в Интернете) заключается в том, что он должен повторно запускать красные примеры, пока они не будут пройдены. Моя проблема в том, что он повторно запускает все примеры в файле спецификаций, где найден неудачный пример, включая пройденные. Я бы предпочел не тратить время на повторный запуск пройденных примеров, исправляя неудачный. Можно ли настроить автотест так, чтобы запускались только неудачные примеры?


person fakeleft    schedule 17.10.2011    source источник
comment
Вы с тех пор (а) обновили RSpec, (б) обновили Rails и (в) вместо этого установили gem guard-rspec? Насколько я понимаю, автотест не так часто используется в новых версиях RSpec.   -  person onebree    schedule 14.04.2015
comment
Да, запуск вещей вручную, кажется, работает достаточно хорошо для моих целей. Я должен упомянуть, что охрана кажется мне устаревшим предложением... Некоторое время назад я отключил ее для zeus и теперь использую spring, когда я прошел обновление рельсов 4. Ах, радость идти в ногу со временем... ‹/sarc›   -  person fakeleft    schedule 15.04.2015
comment
Guard-rspec на самом деле не устарел. Однако Spork и его защитный плагин есть. Вы все еще пользуетесь автотестом?   -  person onebree    schedule 15.04.2015


Ответы (1)


Вам понадобится гем rspec-retry. Вот несколько примеров из документации о том, как это реализовать:

Примените его в блоке configure, охватывающем весь набор тестов...

RSpec.configure do |config|
    config.verbose_retry = true # show retry status in spec process
    config.default_retry_count = 3
end

Или применяйте его по частям...

it 'should randomly succeed', :retry => 3 do
    expect(rand(2)).to eq(1)
end
person digitalextremist    schedule 07.05.2015