Включить полную обратную трассировку в Ruby on Rails TestCase - PullRequest
17 голосов
/ 03 октября 2011

При запуске отображается только одна строка обратного хода:

rake test

Выход:

...

ERROR should get search for keywords (1.93s) 
  NoMethodError: undefined method `features' for #<Transcript:0x00000006243780>
  /usr/lib/ruby/gems/1.9.1/gems/activemodel-3.1.0/lib/active_model/attribute_methods.rb:385:in `method_missing'

...

Мне нужно больше строк информации о возврате. Я пытался

  • тест рейка - трассировка

  • Rails.backtrace_cleaner.remove_silencers! в конфигурации / инициализаторах / backtrace_silencers.rb

  • установка глобального $ DEBUG = true

и это не сработало.

Как включить?

Ответы [ 2 ]

26 голосов
/ 11 января 2012
BACKTRACE=blegga rake test

BACKTRACE=blegga rails test # rails 5+

Добавить --trace, если вам нужен журнал, связанный с рейком.

2 голосов
/ 17 февраля 2012

Наконец-то понял это. Проблема связана с гемом 'turn', включенным в Rails 3.1, или фактически с версией v0.8.2, что требуется для Gemfile по умолчанию:

group :test do
  # Pretty printed test output
  gem 'turn', '0.8.2', require: false
end

Поворот v0.8.2 не включает полную обратную трассировку, поэтому вам нужно обновить его, чтобы получить. Я сделал это, изменив вышеприведенное в моем Gemfile на следующее:

group :test do
  # Pretty printed test output
  gem 'turn', require: false
  gem 'minitest'
end

(Мне пришлось добавить мини-тест, потому что в противном случае терн выдает RuntimeError, говорящую «MiniTest v1.6.0 устарел».)

Затем я запустил bundle update turn и получил последнюю версию (0.9.2 на момент написания статьи). Это дает полные следы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...