2012-10-31 13 views
8

के लिए Capybara.javascript_driver का उपयोग करने के लिए RSpec कॉन्फ़िगर करें क्या यह संभव है कि सभी अनुरोध चश्मे के लिए Capybara (डिफ़ॉल्ट या कस्टम) जावास्क्रिप्ट ड्राइवर का उपयोग करने के लिए आरएसपीईसी को वैश्विक रूप से कॉन्फ़िगर करें? हम कभी-कभी प्रत्येक अनुरोध spec में js: true को मैन्युअल रूप से जोड़ना भूल जाते हैं और यह कष्टप्रद है।सभी अनुरोध चश्मा

उत्तर

10

spec_helper.rb में, निम्न सेट करें:

config.before(:each) do 
    if example.metadata[:type] == :request 
     Capybara.current_driver = :selenium # or equivalent javascript driver you are using 
    else 
     Capybara.use_default_driver # presumed to be :rack_test 
    end 
    end 
+0

काम करता है यही कारण है कि, लेकिन मैं अनुरोध चश्मा को यह सीमित करना चाहते हैं। बेशक मैं इस लाइन को प्रत्येक अनुरोध spec फ़ाइल में डाल सकता हूं, लेकिन मैं इसे वैश्विक रूप से कॉन्फ़िगर करना चाहता हूं। जैसा कि आप कुछ विशिष्ट प्रकार के लिए विशिष्ट मॉड्यूल शामिल कर सकते हैं। – rubiii

+0

@rubiii spec प्रकार – prusswan

+0

की जांच करने के लिए एक तरीके से अपडेट किया गया अच्छा लगता है। आपका बहुत बहुत धन्यवाद! – rubiii

8

capybara और rspec के बाद के संस्करणों के लिए, यह प्रकार "सुविधा"

config.before(:each) do 
    if [:request, :feature].include? example.metadata[:type] 
    Capybara.current_driver = :poltergeist # or equivalent javascript driver you are using 
    else 
    Capybara.use_default_driver # presumed to be :rack_test 
    end 
end 

या RSpec 3 के लिए होने के लिए जाँच करने के लिए महत्वपूर्ण है (ब्लॉक में)

config.before(:each) do |example| 
    if [:request, :feature].include? example.metadata[:type] 
    Capybara.current_driver = :poltergeist # or equivalent javascript driver you are using 
    else 
    Capybara.use_default_driver # presumed to be :rack_test 
    end 
end 
+0

यदि आप आरएसपीसी> = 3 का उपयोग कर रहे हैं, तो आपको वही व्यवहार प्राप्त करने के लिए 'config.before (: प्रत्येक) do | example |' की पहली पंक्ति लिखनी होगी। @ Joshua-muheim के माध्यम से यहां: http://stackoverflow.com/a/24571607/2948832 – styger

+1

@styger, धन्यवाद, मैंने जवाब अपडेट किया। – justingordon

0

example पारित अगर आप सभी परीक्षण सीए चलाना चाहते हैं इस समाधान का संदर्भ लें एक बार में ses।

Rspec+Capybara optionally change JS driver

+0

प्रासंगिक जानकारी को पोस्ट में रखें। –

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