Thursday 15 January 2015

ruby on rails - How do you define a custom logger without breaking your guard tests -


उपरोक्त संक्षिप्त प्रश्न, नीचे अधिक विवरण (ज्यादातर अनावश्यक लेकिन ये समझ गए कि वे उपयोगी हो सकते हैं)। मैं रेल की रक्षा करने के लिए नए और अपेक्षाकृत नए हूं, लेकिन मैंने ठीक से चलने वाले आरएसपीसी के साथ एक अच्छी तरह से काम कर रहे रेल परियोजना की स्थापना की है। मुख्य बात यह है कि दोनों गार्ड और कस्टम लॉगर पूरी तरह से काम करते हैं और स्वयं के द्वारा अपेक्षित काम करते हैं, लेकिन जब यह सक्षम होता है तो लॉगर गार्ड को तोड़ देगा।

विवरण का पालन करें: अगर मैं एक कस्टम लॉगर को इस तरह परिभाषित करता हूं:

  logfile = File.open ("# {Rails.root} /log/my.log", 'a') logfile.sync = true MY_LOGGER = लकड़हारा। नया (लॉगफ़ाइल)   

एक फ़ाइल में जैसे "/lib/assets/my_logger.rb"

अगर मुझे इसके लिए मेरी config / development.rb फ़ाइल में इसकी आवश्यकता है:

  की आवश्यकता "संपत्ति / my_logger"   

तब मैं अपने किसी भी नियंत्रक के भीतर इस लकड़हारा का उपयोग कर सकता हूं, लेकिन जैसे ही मैं इसे वहां रखता हूं, जैसे

  कक्षा सत्र नियंत्रक & lt; ApplicationController def new end def उपयोगकर्ता = User.find_by (ईमेल: पैराम्स [: सत्र] [: ईमेल] .डाउनकेस) अगर उपयोगकर्ता & amp; amp; User.authenticate (params [: सत्र] [: पासवर्ड]) sign_in उपयोगकर्ता redirect_back_or user else फ़्लैश। अब [: त्रुटि] = 'अमान्य ईमेल / पासवर्ड संयोजन' 'नया' MY_LOGGER.info रेंडर करें "यह गार्ड परीक्षणों को तोड़ देगा" एंड एंड   

फिर मेरे संरक्षक परीक्षण जो नियंत्रक में इस क्रिया पर निर्भर होते हैं, टूट जाएगा:

(ऊपर MY_LOGGER लाइन के साथ टिप्पणी की गई है):

  16:56:33 - जानकारी - चल रहा है: spec / requests / authentication_pages_spec.rb args ["--drb", "-f", "प्रगति", "-आर" के साथ परीक्षण चल रहा है, "/ यूसेर्स / क्रैशांडबर्न 4/.आरवीएम / गेम्स / आरबी -2-2.0.0-पी 0 / जीम्स / गॉर्ड-आरपीसी -2.5.0 / एलआईबी / गाइड / आरएसपीसी / फ़ॉर्मेट। आरबी", "-एफ", "गार्ड :: आरएसपीईसी :: फॉर्मेटर "," --फ़ाइल-निकास-कोड "," 2 "," spec / requests / authentication_pages_spec.rb "] ... .................. 1.61 सेकंड में समाप्त 18 उदाहरण, 0 विफलता   

(जगह में पंक्ति के साथ)

  16:56:19 - जानकारी - चल रहा है: कल्पना / अनुरोध / Authentication_pages_spec.rb आरजीएस ["--drb", "-f", "प्रगति", "-आर" के साथ चलने वाले परीक्षण , "/ यूसेर्स / क्रैशांडबर्न 4 / आरआरएम / गेम्स / आरयूबी -2.0.0-पी 0 / जीम्स / गॉर्ड -आरएसपीसी -2.5.0 / एलआईबी / गार्ड / आरएसपीसी / फ़ॉर्मेट.आरबी", "-एफ", "गार्ड :: आरएसपीईसी :: फॉर्मेटर "," --फाइल्युअर-एक्स्टिट-कोड "," 2 "," spec / requests / authentication_pages_spec.rb "] ... ..एफएफएफ ............. विफलताएं : 1) अमान्य जानकारी के साथ प्रमाणीकरण साइनइन असफलता / त्रुटि: यह सच है, वापसी करने के लिए ('साइन इन')} अपेक्षित #has_title? ("साइन इन करें") होना चाहिए, # गलत हो गया # ./spec/requests/authentication_pages_spec.rb: 20: `ब्लॉक (4 स्तर) में & lt; शीर्ष (आवश्यक) & gt; 2) अमान्य जानकारी के साथ प्रमाणीकरण साइनइन असफलता / त्रुटि: इसे ('div.alert.alert-error', text: 'अमान्य')} अपेक्षित #has_selector? ("Div.alert.alert-error", {: टेक्स्ट = & gt; "अमान्य"}) वापस लौटाने के लिए, झूठी # ./spec/requests/authentication_pages_spec.rb21:in `ब्लॉक (4 स्तर) में & lt; शीर्ष (आवश्यक) & gt; 3) अन्य पेज पर जाने के बाद अमान्य जानकारी के साथ प्रमाणीकरण साइन इन करें विफलता / त्रुटि: {click_link "होम"} से पहले। कैपिबारा :: एलीमेंट नॉटफौंड: लिंक "होम" # # /spec/requests/authentication_pages_spec.rb23:in_blue (5 स्तर) में & lt; शीर्ष (आवश्यक) & gt; 1.62 सेकंड में समाप्त 18 उदाहरण, 3 विफलता विफल उदाहरण: rspec ./spec/requests/authentication_pages_spec.rb:20 # अमान्य जानकारी के साथ प्रमाणीकरण साइनइन। Rspec ./spec/requests/authentication_pages_spec.rb:21 # प्रमाणीकरण साइनइन अमान्य जानकारी के साथ rspec /spec/requests/authentication_pages_spec.rb:24 # एक अन्य पेज   

(अनावश्यक स्टैकेट्स के लिए माफी) पर जाने के बाद अमान्य जानकारी के साथ प्रमाणीकरण साइनइन

अब मैं गया हूं गार्ड जिथूब पृष्ठ पर चारों तरफ देख रहे हो लेकिन आसानी से कहीं नहीं मिल पाता, यह मेरे कस्टम लॉगर को सक्षम करने के बारे में कुछ भी कहता है ताकि इसे गार्ड द्वारा नजरअंदाज कर दिया जाए, क्या किसी को यह कैसे प्राप्त करना है?

< Div class = "post-text" itemprop = "text">

आपको config / development.rb में लॉगगर की आवश्यकता होती है, जिसका अर्थ है कि MY_LOGGER अपरिभाषित है परीक्षण के माहौल में, अपनी कार्यक्षमता तोड़कर चश्मा सही ढंग से असफल हो रहे हैं। बस इसे सभी वातावरणों में उपलब्ध कराने के लिए config / environment.rb की आवश्यकता को ले जाएं।

No comments:

Post a Comment