2011-11-30 20 views
13

पर जाएं, मैं ककड़ी और कैपिबरा का उपयोग कर रहा हूं। एक रेल 3.0.9 मंच में। मैं इस परीक्षण का मामला हो रही है असफल: लॉग है:ककड़ी और कैपिबरा, बाहरी यूआरएल कैसे खोलें या बाहरी यूआरएल

(::) failed steps (::) 

No route matches "/wiki/Baltimore_Ravens" (ActionController::RoutingError) 
<internal:prelude>:10:in `synchronize' 
./features/step_definitions/web_steps.rb:20:in `/^(?:|I)am on (.+)$/' 
features/annotate.feature:7:in `Given I am on a web page' 

Failing Scenarios: 
cucumber features/annotate.feature:11 # Scenario: launch annotation/ logged in 

6 scenarios (1 failed, 5 skipped) 
63 steps (1 failed, 62 skipped) 

फ़ाइल web_steps:

7 Given I am on a web page 
:

19 Given /^(?:|I)am on (.+)$/ do |page_name| 
20 visit path_to(page_name) 
21 end 

फ़ाइल annotate.feature इस कोड को मिल गया: कोड के इस टुकड़े मिल गया

"वेब पेज" को समर्थन/paths.rb में परिभाषित किया गया है:

when /a web page/ 
    'http://en.wikipedia.org/wiki/Baltimore_Ravens' 

जाहिर है यह एक बाहरी यूआरएल है। मैं इसे खोलना चाहता हूं और कैपिबरा और ककड़ी मुझे ऐसा करने की इजाजत नहीं देगी। तो, ककड़ी परीक्षण मामले में बाहरी यूआरएल खोलने का रास्ता ढूंढने में मेरी मदद करें!

+0

का उपयोग करें अपने ऐप का परीक्षण करने के लिए आपको बाहरी पृष्ठ पर क्यों होना चाहिए? –

+0

हमारे एप्लिकेशन की यह सुविधा है कि उपयोगकर्ता इसे लॉन्च कर सकता है, जबकि वह किसी अन्य बाहरी पृष्ठ पर था! –

+0

बाल्टीमोर Ravens! – jphager2

उत्तर

19

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

आप बाहरी यूआरएल की यात्रा करना चाहते हैं (परीक्षण करने के लिए, उदाहरण के लिए, जिन पर आपका एप्लिकेशन को सही ढंग से पुनर्निर्देश), तो आप मूल रूप से दो विकल्प हैं:

before do 
    Capybara.current_driver = :selenium 
end 

:

1/जैसे सेलेनियम की तरह एक और ड्राइवर का उपयोग करें फिर, कोड में, आप यूआरएल इसलिए की तरह कॉल कर सकते हैं:

visit 'http://en.wikipedia.org/wiki/Baltimore_Ravens' 

या, यदि आप तो जैसे डिफ़ॉल्ट app_host सेट:

+०१२३५१६४१० आप सभी चश्मा में वैश्विक रूप से उन्हें सक्षम करने के

visit '/wiki/Baltimore_Ravens' 

आप अपने spec_helper.rb में कॉन्फ़िगर कर सकते हैं चालक और अनुप्रयोग मेजबान:

Capybara.app_host = 'http://en.wikipedia.org' 
Capybara.run_server = false # don't start Rack 

तो फिर तुम यूआरएल कॉल कर सकते हैं

Capybara.configure do |config| 
    config.current_driver = :selenium 
    config.run_server = false 
    config.app_host = 'http://en.wikipedia.org' 
end 

2/capybara-mechanize

+0

मैं सिर्फ अपने जेमफाइल में सेलेनियम के मणि को जोड़ता हूं और यह हल हो जाता है! बहुत बहुत धन्यवाद –

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