2011-10-03 10 views
11
jest wyświetlany

Tylko jedna linia backtrace kiedy biegnę:Włącz pełny zapis w Ruby on Rails TestCase

rake test 

wyjściowa:

...

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' 

...

Potrzebuję więcej linii informacji zwrotnej. Próbowałem

  • Test grabie --trace

  • Rails.backtrace_cleaner.remove_silencers! w config/inicjalizatory/backtrace_silencers.rb

  • ustawienie globalne $ DEBUG = true

i nie działa.

Jak mogę go włączyć?

Odpowiedz

17
BACKTRACE=blegga rake test 

BACKTRACE=blegga rails test # rails 5+ 

Dołącz --trace, jeśli potrzebujesz dziennika związanego z rake.

+0

To wygląda na taką przypadkową rzecz do dodania, ale działa! Gdzie jest oficjalna dokumentacja? – brandaemon

+0

BACKTRACE = YES działa również – justingordon

2

W końcu to rozgryzłem. Problem jest z kolei „” gem zawartych w Rails 3.1, a właściwie z kolei v0.8.2, który jest wymagany przez domyślny Gemfile:

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

Turn v0.8.2 nie zawiera pełną ślad, tak musisz go uaktualnić, aby go zdobyć. Robiłem to przez zmianę wyżej w moim Gemfile do tego:

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

(musiałem dodać MiniTest ponieważ włączyć inaczej rzuca RuntimeError mówiąc „MiniTest v1.6.0 jest nieaktualna.”)

Następnie Zrobiłem bundle update turn i otrzymałem najnowszą wersję (0.9.2 od tego pisania). To daje pełne ślady po śladach.