Прямо сейчас, если я запускаю свой набор тестов, rake spec
я получаю сообщение об ошибке:
1) SegmentsController GET 'index' должен работать Отказ / ошибка: получить индекс undefined метод `locale 'для # # ./spec/controllers/segments_controller_spec.rb:14: в `блоке (3 уровня) в '
Это нормально, у меня есть ошибка :)
Проблема в том, что трассировка не очень полезна. Я знаю, что это сломалось segments_controller_spec.rb
, строка 14, но именно здесь я вызываю тест:
### segments_controller_spec.rb:14
get 'index'
Я бы предпочел иметь фактический разрыв строки и полную трассировку, а не часть в папке спецификации.
Бежать с --trace
помощью не помогает.
Ответы:
Вы должны запустить rspec с
-b
опцией, чтобы увидеть полную трассировкуисточник
Другой (более простой) вариант - отредактировать
.rspec
файл и добавитьbacktrace
опцию. Это должно выглядеть примерно так:Это даст вам полную трассировку. Надеюсь это поможет.
источник
color
. Я думаю, если вы произнесете это по буквам,colour
может появиться шутка о МонтиЭто также будет работать:
источник
Другой подход - очистить все шаблоны исключения трассировки в файлах
spec_helper.rb
. Мне нравится этот раствор больше всего как я могу сохранить все настройки RSpec в одном месте и избавиться от.rspec file
или неявными--backtrace
в.travis.yml
.источник
Я не знаю, как сделать так, чтобы ошибка контроллера отображалась в rspec. Иногда он появляется, но я не знаю, при каких условиях это появляется. Вот способ довольно быстро увидеть ошибку:
Откройте другой сеанс терминала и запустите:
Затем вернитесь в сеанс терминала и запустите только спецификацию, в которой была ошибка:
Вернитесь в конец журнала, и вы должны увидеть ошибку, надеюсь, без особых других вещей, окружающих ее (потому что вы выполнили неудачный тест сам по себе).
источник
Еще один вариант, когда все остальное не работает, - просто добавить блок восстановления и распечатать стек, попробуйте или добавьте туда оператор привязки pry и используйте
show-stack
.источник
begin
иrescue
блок в качестве внешнего оператора способа действия контроллера. Или используйтеrescue_from
.git diff
перед тем, как совершить это, это спасет ваш бекон.