2011-10-04 2 views
9

मैं निम्नलिखित उत्पादन को देखने के लिए जब अनुरोध rspec चश्मा चल रहा शुरू कर में/अक्षम "कैश याद आती है" संदेशों को दबाने के लिए कैसे:जब rspec परीक्षण चलाने के रेल 3.1

cache: [GET /login] miss 
cache: [GET /javascripts/jquery.min.js?1317513028] miss 

Normaly मैं पारित करने के लिए हरे रंग की डॉट्स मिलेगा त्रुटि संदेशों के लिए कुछ जानकारी के साथ परीक्षण और लाल एफएस।

क्या आउटपुट से कैश मिस संदेशों को अक्षम करने का कोई तरीका है?

उत्तर

4

मुझे लगता है कि इसका आरएसपीईसी के साथ कुछ लेना देना नहीं है और आरएसपीईसी सिर्फ रेल लॉग में क्या प्रिंट कर रहा है। मुझे लगता है कि फ़्यूज़न यात्री चर्चा समूह पर यह post by Brian Weaver आपके प्रश्न का उत्तर दे सकता है:

क्या आपके पास रैक-कैश स्थापित है? मैंने पैसेंजर/रेल/रैक और कई अन्य रत्नों के माध्यम से एक अच्छा दिन + ट्रेसिंग बिताई ताकि यह पता चल सके कि उस तरह की रेखाएं क्यों दिखाई दे रही थीं। 'cache: ....' 'लाइन

config.action_dispatch.rack_cache = {: मेटास्टोर => "रेल: /",:: entitystore => "रेल: /",: verbose => false}

मैंने रेल की "मिडलवेयर" कॉन्फ़िगरेशन के भीतर से उस रेखा को खींच लिया है, बस 'verbose' को सच से गलत में बदल दिया है।

आपके मामले में, मुझे लगता है कि आप इसे अपनी अपनी परीक्षण पर्यावरण फ़ाइल जोड़ना चाहते हैं।

+0

किसी तरह यह नहीं था ' मेरे लिए काम नहीं: -/ – Papipo

+0

दुर्भाग्य से यह मेरे लिए काम नहीं करता है :(आश्चर्य है कि अन्य तरीके हैं? –

+0

क्या आप ड्रैगनफ्लाई मणि का उपयोग करते हैं? –

3

@RyanTM के अतिरिक्त आपको परीक्षण वातावरण के लिए कैशिंग चालू करने की भी आवश्यकता है ताकि ड्रैगनफली अपने स्वयं के रैक :: कैश (के साथ: verbose => true) को कॉन्फ़िगर न करे, लेकिन इसके बजाय रेल द्वारा एक सेटअप का उपयोग करता है।

# set Rack::Cache verbose to false to prevent logging to rspec output   
config.action_controller.perform_caching = true        
config.action_dispatch.rack_cache = {:metastore => "rails:/", :entitystore => "rails:/", :verbose => false} 
1

मैं ऊपर वाले कामकाज के दोनों मेरे लिए काम नहीं कर सकता है, लेकिन करने के लिए इस जोड़ने मेरी 'config/initializers/dragonfly.rb' काम किया:

if Rails.env.test? 
    Rails.application.middleware.delete Rack::Cache 
    Rails.application.middleware.insert 0, Rack::Cache, { 
    :verbose  => false, 
    :metastore => URI.encode("file:#{Rails.root}/tmp/dragonfly/cache/meta"), # URI encoded in case of spaces 
    :entitystore => URI.encode("file:#{Rails.root}/tmp/dragonfly/cache/body") 
    } 
end