ruby - परीक्षण विफलता से जुड़े पूर्ण ट्रेस देने के लिए rspec-2 कैसे प्राप्त करें?




ruby-on-rails-3 testing (4)

एक और (आसान) विकल्प .rspec फ़ाइल को संपादित करना है, और backtrace विकल्प जोड़ें। इसे कुछ हद तक देखना चाहिए:

--colour
--backtrace

इससे आपको पूर्ण बैकट्र्रेस मिलेगा। उम्मीद है की यह मदद करेगा।

अभी अगर मैं rake spec का उपयोग कर अपना टेस्ट सूट चलाता हूं तो मुझे एक त्रुटि मिलती है:

1) SegmentsController GET 'index' should work
   Failure/Error: get 'index'
   undefined method `locale' for #
   # ./spec/controllers/segments_controller_spec.rb:14:
      in `block (3 levels) in '

यह सामान्य है क्योंकि मुझे कोई त्रुटि है :)

समस्या यह है कि ट्रेस बहुत उपयोगी नहीं है। मुझे पता है कि यह segments_controller_spec.rb में segments_controller_spec.rb , लाइन 14, लेकिन यह वही है जहां मैं परीक्षण कहता हूं:

### segments_controller_spec.rb:14
get 'index'

मैं वास्तविक रेखा तोड़ने और पूरा पता लगाने के लिए पसंद करेंगे, spec फ़ोल्डर में हिस्सा नहीं।

--trace साथ चलने में मदद नहीं करता है।


एक और विकल्प जब सब कुछ विफल हो जाता है तो केवल बचाव ब्लॉक जोड़ना और स्टैक को प्रिंट करना या वहां बाध्यकारी प्राइम स्टेटमेंट जोड़ना और show-stack उपयोग करना है।

rescue Exception => e
  puts ""
  puts e.backtrace
  puts ""

मैं नहीं जानता कि कैसे rspec में नियंत्रक त्रुटि को दिखाने के लिए। कभी-कभी यह दिखाता है लेकिन मुझे नहीं पता कि किन स्थितियों को दिखाना है। यहां त्रुटि को तुरंत देखने का एक तरीका यहां दिया गया है हालांकि:

एक और टर्मिनल सत्र खोलें और चलाएं:

tail -f log/test.log

फिर टर्मिनल सत्र पर वापस जाएं और केवल उस स्पेक को चलाएं जिसमें त्रुटि थी:

bin/rspec -b spec/requests/posts/index_spec.rb

लॉग की पूंछ पर वापस जाएं और आपको त्रुटि दिखाई देनी चाहिए, उम्मीद है कि इसके आस-पास की बहुत सारी चीजें बिना (क्योंकि आप स्वयं असफल परीक्षण चलाते हैं)।


यह भी काम करेगा:

# rails_helper.rb
RSpec.configure do |config|
  config.full_backtrace = true
end




rspec2