2011-08-14 13 views
5

में रेल एप्लिकेशन का पोर्ट नंबर दूरदराज और faraday_middleware के संयोजन में rspec का उपयोग कर रेल अनुप्रयोगों के जेसन प्रतिक्रियाओं का परीक्षण करना चाहता हूं। दूरदराज के उपयोग के लिए आवेदन यूआरएल की जरूरत है। परीक्षणों में मैं लोकलहोस्ट + पोर्ट नंबर का उपयोग करना चाहता हूं।आरएसपीसी परीक्षण

सवाल यह है कि, मैं एक आरएसपीईसी परीक्षण पर्यावरण में वर्तमान अनुप्रयोग उदाहरण के पोर्ट नंबर को कैसे प्राप्त या सेट कर सकता हूं?

इसी तरह के प्रश्न हैं लेकिन कोई संतोषजनक उत्तर here और here कोई संतोषजनक उत्तर नहीं है।

कोई विचार?

+0

सटीक की जरूरत होती Am वही चीज। आशा है कि आपको जवाब मिलेगा। – Tass

+0

बस एक समान प्रश्न [यहां] (http://stackoverflow.com/a/17496025/535171) पर प्रतिक्रिया पोस्ट की गई। – JKubecki

उत्तर

2

मैं एक ही जरूरत (Watir + RSpec) था, लेकिन समस्या है: कोई रैक ढेर परीक्षण के दौरान डिफ़ॉल्ट रूप से चल रहा है ...

मैं इस समाधान पाया:

spec_helper.rb में:

HTTP_PORT = 4000 

test_instance_pid = fork do 
    exec 'unicorn_rails -E test -p %d' % HTTP_PORT 
end 

at_exit do 
    Process.kill "INT", test_instance_pid 
    Process.wait 
end 

जो सभी spec परीक्षणों के लिए एक बार टेस्ट स्टैक शुरू करते हैं, और अंत में इसे मार देते हैं। (इस नमूने में, मैं गेंडा का उपयोग कर रहा है, लेकिन हम किसी अन्य सर्वर का उपयोग कर कल्पना कर सकते हैं)

कल्पना में, मैं पुन: उपयोग HTTP_PORT URL बनाने के लिए निरंतर:

browser.goto "http://localhost:#{HTTP_PORT}/" 
संबंधित मुद्दे