2011-10-03 34 views
11

Chỉ một dòng backtrace được hiển thị khi tôi chạy:Bật backtrace đầy đủ trong Ruby on Rails TestCase

rake test 

Output:

...

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' 

...

Tôi cần thêm dòng thông tin quay lại. Tôi đã thử

  • thử nghiệm cào --trace

  • Rails.backtrace_cleaner.remove_silencers! trong config/initializers/backtrace_silencers.rb

  • thiết lập toàn cầu $ DEBUG = true

và nó không hoạt động.

Làm cách nào để bật tính năng này?

Trả lời

17
BACKTRACE=blegga rake test 

BACKTRACE=blegga rails test # rails 5+ 

Gắn --trace nếu bạn cần đăng nhập liên quan đến cào.

+0

Điều đó trông giống như một điều ngẫu nhiên để thêm, nhưng nó hoạt động! Tài liệu chính thức ở đâu? – brandaemon

+0

BACKTRACE = YES cũng hoạt động – justingordon

2

Cuối cùng đã tìm ra điều này. Vấn đề là với 'Bước ngoặt' đá quý có trong Rails 3.1, hoặc thực sự với v0.8.2 lượt, được yêu cầu bởi mặc định Gemfile:

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

Bật v0.8.2 không bao gồm đầy đủ các vết lùi, vì vậy bạn phải nâng cấp để có được nó. Tôi đã làm điều đó bằng cách thay đổi nêu trên trong Gemfile của tôi như thế này:

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

(tôi đã có thêm minitest bởi vì nếu không quay ném một RuntimeError nói "v1.6.0 MiniTest là hết hiệu lực.")

Sau đó, Tôi đã chạy bundle update turn và nhận được verion mới nhất (0.9.2 khi viết bài này). Điều đó cung cấp cho backtraces đầy đủ.