2010-10-11 7 views
11

मैं अपने आवेदन को रेल 3 में अपग्रेड करने की प्रक्रिया में हूं। मैंने रेल 3 के साथ रुपेक 2 का उपयोग शुरू किया। मुझे अपने कुछ आरएसपीसी परीक्षणों के लिए लेनदेन संबंधी फिक्स्चर बंद करना होगा । वहाँ Rspec 2 के साथ रेल 3 में परीक्षण प्रति ब्लॉक ऐसा करने के लिए एक रास्ता हैरेल 3 और रुपयेपीईसी 2 अलग-अलग परीक्षणों के लिए लेनदेन संबंधी फिक्स्चर बंद कर देते हैं

Failure/Error: ActiveSupport::TestCase.use_transactional_fixtures = false 
    undefined method `use_transactional_fixtures=' for ActiveSupport::TestCase:Class 

: पहले मैं अपने मॉडल चश्मा

before(:all) do 
    ActiveSupport::TestCase.use_transactional_fixtures = false 
    end 

    after(:all) do 
    ActiveSupport::TestCase.use_transactional_fixtures = true 
    clean_engine_database 
    end 

कि अब मुझे त्रुटि देता है में निम्न कोड का इस्तेमाल किया?

+1

संभावित डुप्लिकेट [आरएसपीईसी 2 के साथ एक स्पेक के लिए लेनदेन संबंधी फिक्स्चर बंद करें] (http://stackoverflow.com/questions/3853098/turn-off-transactional-fixtures-for-one-spec-with-rspec-2) – shingara

+1

यह डुप्लिकेट प्रतीत नहीं होता है। वे सिर्फ संबंधित हैं। –

उत्तर

19

मैं इस सवाल का जवाब तलाश कर रहा हूँ, this blog entry

यह वर्णन ब्लॉक

describe "xxx" do 
    self.use_transactional_fixtures = false 
    ... 

अंदर घोषित करने के लिए पता चलता है भर में आया था मैंने इसे आरएसपीसी 2.6.3 के साथ रेल 3.0.7 के साथ करने की कोशिश की, और काम करने की तरह दिखता है।

+3

अच्छा। मैंने पाया कि आप इसे 'संदर्भ' ब्लॉक की शुरुआत में भी डाल सकते हैं, और यह केवल इसके अंदर के परीक्षणों पर लागू होगा। – Kelvin

+1

रेल 3.2.2 और मिनी-टेस्ट 2.5.1 – eclectic923

+1

के साथ ठीक ठीक (और वैसे ही) काम करता है अद्यतन: इसका उपयोग अब चेतावनी देता है 'डिस्क्रेशन चेतावनी: use_transactional_fixtures = को हटा दिया गया है और रेल 5.1 से हटा दिया जाएगा (use_transactional_tests = बजाय) '। हालांकि, 'self.use_transactional_tests = false' ठीक काम करता है। – amingilani

0

spec_helper.rb पर config.use_transactional_fixtures = false डालकर आप विश्व स्तर पर लेनदेन संबंधी फिक्स्चर को अक्षम कर सकते हैं। यदि आप उन्हें परीक्षण द्वारा नियंत्रित करना चाहते हैं (उदाहरण के लिए उनमें से कुछ पर लेनदेन का उपयोग करें), तो आप इस व्यवहार को डेटाबेस क्लीयरर के साथ सेट कर सकते हैं।

ब्राउज़र पर जावास्क्रिप्ट वाले पृष्ठों का परीक्षण करते समय मुझे एक संबंधित समस्या आई है (एक परिदृश्य जो लेनदेन संबंधी फिक्स्चर के साथ काम नहीं करता है)। यहाँ कैसे मैं इसे हल करने के करने में कामयाब रहे है: http://github.com/lailsonbm/contact_manager_app

0
RSpec.configure do |config| 
    config.use_transactional_fixtures = true 
end 
+0

यह काम नहीं किया। मैंने इसे पहले (सभी) में रखा है और यह काम नहीं कर रहा है। मुझे अभी भी यह त्रुटि मिल रही है जिसे आम तौर पर परीक्षण के लिए लेनदेन संबंधी फिक्स्चर बंद करके हल किया जाता है। पीजीआरआरआर: त्रुटि: सेट ट्रांज़ेक्शन इस्लामी स्तर किसी भी प्रश्न – Nicolo77

+2

से पहले कॉल किया जाना चाहिए आपको यह कोड किसी भी 'सभी' या 'वर्णन' ब्लॉक के बाहर रखना चाहिए। यदि आप इसे वैश्विक रूप से सेट करना चाहते हैं तो spec_helper.rb फ़ाइल एक अच्छी जगह है। और मुझे लगता है कि दाऊद को 'सत्य' के बजाय 'झूठा' कहना था। –

संबंधित मुद्दे