2011-02-03 16 views
5

2.0 से पहले आरएसपीसी के संस्करणों में मैं रंग आउटपुट को कम करने या फ़ाइल में रीडायरेक्ट कर सकता था। ऐसा करने के लिए मुझे बस RSPEC_COLOR पर्यावरण चर को सत्य पर सेट करना होगा। हालांकि, ढांचे के नए मुख्य संस्करण में इस चर ने आउटपुट प्रकार (रंग या मोनोक्रोम) को परिभाषित करना बंद कर दिया है। क्या RSpec 2.0 और उच्चतर में रंग को पाइप या रीडायरेक्ट करने का कोई तरीका है?आरएसपीसी। पाइप या रीडायरेक्ट आउटपुट को कैसे रंगा जाए?

धन्यवाद।

डेबियन जीएनयू/लिनक्स 5.0.7;

रूबी 1.9.2;

आरएसपीसी 2.4.0।

अपडेट किया गया


मैं अपने आप को द्वारा जवाब मिल गया।

किसी को प्रभाव प्राप्त करने के लिए tty कॉन्फ़िगरेशन विकल्प का उपयोग करना चाहिए।

# spec/spec_helper.rb 

RSpec.configure do |config| 
    config.tty = true 
end 

उत्तर

1

sources को देख कर, ऐसा लगता है कि color_enabled विन्यास विकल्प RSpec के विन्यास मॉड्यूल में है:

यहाँ उदाहरण है। हालांकि, अगर उत्पादन tty, color is disabled पर नहीं किया जाता है।

module RSpec 
    module Core 
    class Configuration 
     def color_enabled 
     true 
     end 
    end 
    end 
end 

यह सबसे अच्छा तरीका नहीं है, हालांकि:

मेरे सुझाव color_enabled = true सेट और बंदर के लिए इतना है कि है काम करता है RSpec विन्यास मॉड्यूल पैच भी जब एक tty के लिए outputting नहीं होगा। यह भी अनचाहे है और मुझे लगता है कि बंदर पैचिंग rspec करना सबसे आसान काम नहीं है क्योंकि आम तौर पर परीक्षण समर्पित कमांड लाइन उपकरण के माध्यम से चलाए जाते हैं।

शायद आप रखरखाव को एक बग रिपोर्ट खोल सकते हैं और force_color_enabled विकल्प मांग सकते हैं? यह शायद लागू करने के लिए बहुत जल्दी होगा ...

अच्छी किस्मत और मुबारक कोडिंग!

# spec/spec_helper.rb 

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

उत्तर के लिए धन्यवाद, ** अक्टूबर **। मैं इसे अपने आप से निपटता हूं। मेरे उत्तर में ** अपडेटेड ** अनुभाग देखें। – Shamaoke

+0

वैसे, मेरे पास एक [मुद्दा] था (https://github.com/rspec/rspec-core/issues/326) जिथब पर खोला गया, लेकिन मुझे कोई जवाब नहीं मिला और मुझे स्वयं समाधान मिला। – Shamaoke

+0

यह इस कॉन्फ़िगरेशन सेटिंग के साथ बढ़िया काम करता है! बस, बाद में, प्रासंगिक [मुद्दा] (https://github.com/rspec/rspec-core/issues/665) जोड़ने के लिए। – EricC

1

यह रूप में सरल है

# spec/spec_helper.rb 

RSpec.configure do |config| 
    config.tty = true 
end 

फिर rspec | grep --color="never" something रंग रहता है।

+1

** सैम **, प्रश्न रंग आउटपुट के बारे में नहीं था, लेकिन जब आप आउटपुट को पेजर्स या फ़ाइलों पर रीडायरेक्ट करते हैं तो रंग टैग को कैसे संरक्षित किया जाए। देखो: 'config.color_enabled = true'; '$ rspec spec/| कम # => मोनोक्रोम' लेकिन 'config.tty = true; config.color_enabled = true'; '$ rspec spec/| कम # => रंग'। – Shamaoke

1

सवाल में जवाब सही एक है:

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