2012-04-23 1 views
7

Khi khởi động máy chủ đường ray của tôi trong môi trường thử nghiệm (rails s -e test), một cái gì đó là cứu ngoại lệ và đầu ra thay vì "Lỗi không mong muốn trong khi xử lý yêu cầu: ... lỗi ở đây ...". Tôi nhận được backtrace trong chế độ phát triển.Làm cách nào để nhận được một dấu vết ngăn xếp đầy đủ thay vì "Lỗi không mong muốn trong khi xử lý yêu cầu" trong môi trường kiểm tra Rails?

Ai là người đó và tôi làm cách nào để vô hiệu hóa điều đó? Tôi cần backtrace đầy đủ, không chỉ là lỗi đã được nâng lên!

Tôi đang sử dụng Rails 3.2.3, Ruby 1.9.3, rspec, Capybara, Capybara-webkit

+0

Bạn có bỏ ghi chú dòng trong 'config/initializers/backtrace_silencers.rb' không? (Đăng bình luận kể từ khi tôi chưa giấu với 3.2 chưa.) –

+0

Không, nhưng tôi chỉ cố gắng để bỏ ghi chú remove_silencers! và không thay đổi. –

+0

Bạn có 'config.consider_all_requests_local = true' trong' test.rb' của mình không? –

Trả lời

3

Thiết config.action_dispatch.show_exceptions = true trong test.rb đã làm các trick cho tôi.

3

đọc env.rb tạo ra bởi Dưa chuột:

# By default, any exception happening in your Rails application will bubble up 
# to Cucumber so that your scenario will fail. This is a different from how 
# your application behaves in the production environment, where an error page will 
# be rendered instead. 
... 
# 1) Tag your scenario (or feature) with @allow-rescue 
# 2) Set the value below to true. Beware that doing this globally is not 
# recommended as it will mask a lot of errors for you! 

Tóm tắt:

@allow-rescue 
Feature: blah blah blah 

sẽ làm các trick.

+0

Cảm ơn con trỏ, nhưng tôi không sử dụng Dưa chuột. –

+0

hehe Tôi đọc xấu. – juanpastas