मैं '--color' और '--format specdoc' विकल्पों को चालू रखने के लिए विश्व स्तर पर RSpec को कैसे कॉन्फ़िगर करूं


156

मैं उबंटू में RSpec के लिए वैश्विक कॉन्फ़िगरेशन कैसे सेट करूं।

विशेष रूप से तो, --color और --फॉर्मट स्पेकडोक मेरी सभी परियोजनाओं पर (यानी हर बार जब भी मैं कहीं भी आरएसपीसी चलाता हूं)।

जवाबों:


238

जैसा कि आप यहां डॉक्स में देख सकते हैं , इरादा उपयोग बना रहा है ~/.rspecऔर इसमें अपने विकल्प डाल रहा है, जैसे कि --color

विकल्प के ~/.rspecसाथ जल्दी से एक फ़ाइल बनाने के लिए --color, बस चलाएँ:

echo '--color' >> ~/.rspec 

17
--ttyयदि आपको पेजर्स का उपयोग करते समय भी रंग चाहिए तो भी आवश्यक है।
एडम स्पीयर्स

2
क्या पेशेवरों का उपयोग करने / विपक्ष .rspecया spec_helper.rb? @ शमौके @क्रिस्टोफ
इयान वॉन

2
~/.rspecसमाधान का एक बड़ा फायदा पोर्टेबिलिटी है। जैसे हमारा CI सर्वर कलर आउटपुट को बहुत अच्छी तरह से हैंडल नहीं करता है। उपयोगकर्ता डीआईआर विन्यास फाइल के साथ, हम आसानी से विभिन्न वातावरणों को अपना सकते हैं।
क्रिस्टोफ पेट्सचिग

2
एक अन्य प्रासंगिक नोट यह है कि आप एक परियोजना स्तर पर .rspec फ़ाइल बना सकते हैं और इसे केवल उस परियोजना पर लागू कर सकते हैं। बस कुछ सोचा है कि यहाँ भी जानना चाह सकते हैं।
निक ग्रोनो

Spec_helper.rb से .rspec तक मेरे कॉन्फ़िगरेशन विकल्पों को ले जाना मेरे लिए इस समस्या को हल करता है।
एडवर्ड एंडरसन

149

spec_helper.rbसभी प्रोजेक्ट्स में एक फ़ाइल का उपयोग भी किया जा सकता है । फ़ाइल में निम्नलिखित शामिल होना चाहिए:

RSpec.configure do |config|
  # Use color in STDOUT
  config.color = true

  # Use color not only in STDOUT but also in pagers and files
  config.tty = true

  # Use the specified formatter
  config.formatter = :documentation # :progress, :html,
                                    # :json, CustomFormatterClass
end

किसी भी उदाहरण फ़ाइल को उस विकल्प का उपयोग करने में सक्षम होने के लिए सहायक की आवश्यकता होनी चाहिए।


1
मूल प्रश्न वैश्विक विन्यास के लिए पूछता है, यह एक परियोजना-विशिष्ट है। उपयोगी है, लेकिन सही उत्तर नहीं है, एबिक्स के विपरीत जो .rspecफ़ाइल को इंगित करता है।
ओलिवियर लैकन


3
color_enabledहै अबcolor
elado

12

अपनी spec_helper.rbफ़ाइल में, निम्न विकल्प शामिल करें:

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

फिर आपको प्रत्येक *_spec.rbफ़ाइल में उस विकल्प का उपयोग करना चाहिए।


हाय धन्यवाद - क्या आप निम्नलिखित पर विस्तार से बता पाएंगे: "आपको फिर प्रत्येक * _spec.rb फ़ाइल में उस विकल्प का उपयोग करना चाहिए।" मुझे समझ नहीं आया
BKSpurgeon

आपकी प्रत्येक * _spec.rb फ़ाइल आमतौर पर "spec_helper" की आवश्यकता से शुरू होती है, आपको यह नहीं भूलना चाहिए।
क्रिस्टोफ पेट्सचिग

6

यदि आप rspec परीक्षण चलाने के लिए रेक का उपयोग करते हैं तो आप spec / spec.opts को संपादित कर सकते हैं

http://rspec.info/rails/runners.html


9
./spec.opts को हटा दिया गया है। रेल 3 चाहता है कि फ़ाइल का नाम रखा जाए ।/.rspec या ~ / .rspec
हारून व्हीलर

2

या बस alias spec=spec --color --format specdocमेरी तरह अपनी ~ / .bashrc फ़ाइल में जोड़ें।


5
यह समाधान बहुत पोर्टेबल नहीं है। सही उत्तर @abyx का उपयोग करने के साथ है .rspec, जैसे कि जब परियोजना के साथ इसकी जाँच की जाती है, तो इसे प्राप्त करने वाले किसी और को भी यही सेटिंग्स मिलेंगी।
इयान वघन

1
लेकिन सवाल "उबंटू में RSpec के लिए वैश्विक कॉन्फ़िगरेशन", "मेरी सभी परियोजनाओं के पार" पोर्टेबल और न ही कॉप मोड के बारे में था।
zzeroo

3
हम्म, मुझे आपका अधिकार लगता है, आपका जवाब सीधे ओपी से संबंधित है। मैं बड़ी तस्वीर सोच रहा था, लेकिन मुझे अभी भी लगता है कि बेहतर उत्तर @abyx था, अगर ओपी को परियोजनाओं को सही तरीके से कॉन्फ़िगर करने की आदत हो जाती है, तो दूसरों को लाभ होगा, शायद अब नहीं जैसा कि वह कार्यशील एकल हो सकता है, लेकिन अच्छी प्रथाएं बस यही हैं। सॉरी, थोड़ा रैंटी, बस मेरे सोचने का तरीका।
इयान वघन

1
@zzeroo @Ian: कृपया ध्यान दें कि .rspecफ़ाइल को उपयोगकर्ता के होम डायरेक्टरी में (जैसा कि मैंने अपने उत्तर में बताया है) सभी उपयोगकर्ता के rspec के चालान के लिए विश्व स्तर पर काम करता है। यह वास्तव में उपनामों की तुलना में अधिक ठोस है, जैसा कि कुछ रत्न / अन्य उपनाम / उपकरण जो उपयोगकर्ता उपयोग कर सकते हैं जरूरी नहीं कि वे उपनाम का उपयोग करें
abyx

1
अब इस सवाल पर वापस आते हैं और थोड़ा पुराना और समझदार होने के नाते, मैं इस बात से सहमत हूं कि .rspec डॉट फाइल को सेट करना अब एक बेहतर विकल्प है। Abyx में मेरे स्वीकृत उत्तर को अपडेट करते हुए, 2010 में मेरे सवाल का सबसे अच्छा जवाब देने के लिए बहुत धन्यवाद। :)
Evolve

1

एक बात का ध्यान रखें कि RSpec चलाने के विभिन्न तरीकों का प्रभाव है।

मैं कल्पना / spec_helper.rb में निम्नलिखित कोड के साथ विकल्प चालू करने की कोशिश कर रहा था -

Rspec.configure do |config|
  config.tty = $stdout.tty?
end
  1. 'rspec' बाइनरी को सीधे कॉल करना - या 'बंडल निष्पादित rspec' के रूप में और $ stdout.tty की जाँच करना? सच हो जाएगा।
  2. 'रेक स्पेक' कार्य को लागू करना - या 'बंडल एग्जाम्पल रेक स्पेक' के रूप में - रेक एक अलग प्रक्रिया में rspec और $ stdout.tty का आह्वान करेगा? झूठा लौटेगा।

अंत में मैंने ~ / .rspec विकल्प का उपयोग किया, जिसकी सामग्री के रूप में सिर्फ शेट्टी था। मेरे लिए अच्छा काम करता है और हमारे CI सर्वर आउटपुट को साफ रखता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.