2010-09-07 14 views
5

में अपग्रेड करते समय मैं रेलवे 3 पर अपने रेल एप्लिकेशन को अपग्रेड करने का प्रयास कर रहा हूं।नाम त्रुटि: अनियंत्रित निरंतर परीक्षण :: यूनिट :: AssertionFailedError rails3

जब मैं कार्यात्मक परीक्षण चलाता हूं, तो मुझे NameError: uninitialized constant Test::Unit::AssertionFailedError त्रुटियां मिलती हैं। लेकिन इकाई परीक्षण और वेबसाइट स्वयं ठीक काम करने लगती है।

ट्रेस इस तरह दिखता है:

NameError: uninitialized constant Test::Unit::AssertionFailedError 
/Users/mantas/.rvm/gems/ruby-1.9.2-p0/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb:206:in `const_missing_from_s3_library' 
/Users/mantas/.rvm/gems/ruby-1.9.2-p0/bundler/gems/shoulda-02520e4/lib/shoulda/action_controller/matchers/redirect_to_matcher.rb:52:in `rescue in redirects_to_url?' 
/Users/mantas/.rvm/gems/ruby-1.9.2-p0/bundler/gems/shoulda-02520e4/lib/shoulda/action_controller/matchers/redirect_to_matcher.rb:48:in `redirects_to_url?' 
/Users/mantas/.rvm/gems/ruby-1.9.2-p0/bundler/gems/shoulda-02520e4/lib/shoulda/action_controller/matchers/redirect_to_matcher.rb:35:in `matches?' 
/Users/mantas/.rvm/gems/ruby-1.9.2-p0/bundler/gems/shoulda-02520e4/lib/shoulda/assertions.rb:53:in `assert_accepts' 
/Users/mantas/.rvm/gems/ruby-1.9.2-p0/bundler/gems/shoulda-02520e4/lib/shoulda/context.rb:324:in `block in should' 
/Users/mantas/.rvm/gems/ruby-1.9.2-p0/bundler/gems/shoulda-02520e4/lib/shoulda/context.rb:382:in `call' 
/Users/mantas/.rvm/gems/ruby-1.9.2-p0/bundler/gems/shoulda-02520e4/lib/shoulda/context.rb:382:in `block in create_test_from_should_hash' 

दोनों चाहिये और अमेज़न S3 जवाहरात नवीनतम संस्करण हैं।

कोई विचार क्या मैं गलत कर रहा हूं?

उत्तर

6

यह http://github.com/thoughtbot/shoulda/issues/issue/117 की सूचना दी गई है।

आसपास काम (कि कम से कम करता है इस त्रुटि चले जाओ, यकीन नहीं अगर यह वास्तव में सही काम करता है) है:

unless defined?(Test::Unit::AssertionFailedError) 
    class Test::Unit::AssertionFailedError < ActiveSupport::TestCase::Assertion 
    end 
end 
+0

ओह - मैं metion करना भूल गया, मैं कि टुकड़ा परीक्षा/test_helper.rb में डाल –

6

ऐश बर्लिन के समाधान अपवाद दूर जाना है, लेकिन यह कर देगा कर देगा कोई भी matchers कि try और catchTest::Unit::AssertionFailedError विफल। यदि AssertionFailedError एक ActiveSupport::TestCase::Assertion है, और आप ActiveSupport::TestCase::Assertion फेंकते हैं, तो आप इसे Test::Unit::AssertionFailedError के रूप में नहीं पकड़ पाएंगे। उसके पीछे विरासत संबंध है। इसके बजाय, अपने test_helper.rb में रखते:

unless defined?(Test::Unit::AssertionFailedError) 
    Test::Unit::AssertionFailedError = ActiveSupport::TestCase::Assertion 
end 
संबंधित मुद्दे