2014-09-22 7 views
9

पर रुपेक टेस्ट पर पास पैरामीटर पास करें, मैं अपने आरईएसटी एपीआईएस के कार्यात्मक परीक्षण के लिए आरएसपीसी का उपयोग करने की कोशिश कर रहा हूं।कमांड लाइन

जिस तरह से मैं इसे काम करना चाहूंगा, क्लाउड में कहीं भी टेस्ट सर्वर पर अपने एप्लिकेशन को बनाने और तैनात करने के लिए सीआई बिल्ड का उपयोग कर रहा है और फिर इसे स्वचालित कार्यात्मक परीक्षणों को बंद कर दिया गया है। लेकिन इसे ठीक से करने के लिए, मुझे बेस यूआरएल/डोमेन में पास करने में सक्षम होना चाहिए जहां ऐप तैनात किया गया था। यह वही नहीं होगा।

जो कुछ भी मैंने पाया है, वह ऐसा लगता है जैसे आरएसपीईसी ऐसा नहीं कर सकता है। अगर मैं कमांड लाइन पर पैरामीटर में पास नहीं कर पा रहा हूं तो ऐसा करने का कोई और तरीका है? या आरएसपीसी इस के लिए सही विकल्प नहीं है?

+0

आपको इसकी आवश्यकता क्यों है? –

+0

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

+0

वास्तव में प्रश्न का उत्तर नहीं है, लेकिन आपने https://travis-ci.org/ को आजमाया है? डॉनो अगर उनके पास ऐसे पैरामीटर को एकीकृत करने के तरीके हैं – dfherr

उत्तर

13

एक तरीका है कि कमांड लाइन तर्क स्वीकार करने वाले कुछ के साथ rspec को कॉल को बाईपास करना होगा और फिर कोड में rspec आरंभ करना होगा। यदि आप इसके लिए अपनी बाइनरी नहीं लिखना चाहते हैं, तो रेक भी उसमें सक्षम है।

Look here कोड से rspec को चलाने के लिए कैसे।

एक और तरीका आपके परीक्षण को कॉल करते समय एक एनवीवी चर सेट करेगा और अधिमानतः इसे चश्मा में वैकल्पिक बना देगा।

$> SPEC_URL=http://anotherhost:666 rspec

कोड में

:

url = ENV['SPEC_URL'] || "http://localhost:4000"

मैं विधि दो सुझाव है कि के रूप में यह क्लीनर और मेरी राय में आसान तरीका है।

+0

धन्यवाद। मैंने सोचा कि मैंने इसका उल्लेख किया था लेकिन नहीं किया। मैं पहले पर्यावरण परिवर्तनीय दृष्टिकोण में आया था। यह मेरे लिए एक हैक की तरह लगता है लेकिन एकमात्र रास्ता होने का अंत हो सकता है। मैं रेक का उपयोग करके जांच करूँगा और देख सकता हूं कि यह कैसे काम करेगा। –

+0

यह काम करता है। सब के बाद भी हैकिश नहीं है। धन्यवाद! –

+0

यदि आप टीमसिटी का उपयोग करते हैं तो लिखें: 'url = ENV ['SPEC_URL']। To_s.empty? ? एनएनवी ['SPEC_URL']: "http: // localhost: 4000" ' ENV ['SPEC_URL'] न केवल नील बल्कि एक खाली स्ट्रिंग भी हो सकता है (टीमसिटी के मामले में)। – Evmorov