2012-03-09 3 views
6

Я использую Minitest как бегун для своих функциональных тестов, используя Selenium в качестве драйвера для запуска браузера. Каждый тест моделируется как MiniTest :: Unit :: TestCase.Как сделать выполнение мини-стопа при сбое?

Minitest сообщает об итогах выполнения, когда он завершает выполнение всех тестов. Исключения, которые были обнаружены, также печатаются в конце выполнения. Мне трудно отлаживать, когда что-то неожиданное терпит неудачу, поскольку контекст выполнения теряется. Исключения, которые я выполняю, не являются детерминированными.

Есть ли способ заставить Minitest runner прекратить выполнение тестов по ошибке исключения или утверждения?

Я использую MiniTest (2.11.2) и рубин 1.9.2p290 (2011-07-09) [i386-mingw32]

ответ

2

Я думаю, что вы имеете в виду, чтобы иметь "быстрый провал" опция доступна. Я нашел статью fail_fast for minitest (Test::Unit): Immediate backtrace & exit, но это устарело (все еще покрывает то, что можно сделать). Я думаю, вам нужно будет обезопасить вашу библиотеку тестирования, чтобы включить эту опцию. Я нашел Gist, показывающий, как add a simple fail-fast option to minitest/turn/minitest-rails, чтобы вы могли на правильном пути. Я понимаю, ваша проблема связана с первой статье я ссылка:

Когда я запускаю Test :: Unit набор в моем Ruby On Rails 3 проекта через rake test и тест не удается, поведение по умолчанию это всего лишь печать «F» или «E», продолжайте работать, пока все тесты не будут завершены (в то время как я обманываю большие пальцы), а затем распечатываю трассировку стека.

1

Как я ответил here, я нашел драгоценный камень для: minitest-fail-fast. Он работает с Rails 4.2 и Minitest 5.6.1

-1

попробуйте rails test -f сделает это. Это означает прерывание пробного прогона первого отказа или ошибки, если вы запустите rails test -h