2012-05-09 15 views
8

Capybara से प्राप्त दस्तावेज़ों में, आप एक विशेष परीक्षा समूह पर default_driver बदल सकते हैं:कैपिबारा में ककड़ी परीक्षण के लिए आप परीक्षण डिफ़ॉल्ट ड्राइवर कैसे बदलते हैं?

describe 'some stuff which requires js', :js => true do 
    it 'will use the default js driver' 
    it 'will switch to one specific driver', :driver => :selenium 
end 

क्या होगा यदि मैं एक विशिष्ट ककड़ी परीक्षण समूह के लिए यह करने के लिए चाहते थे? मैं उन पैरामीटर कैसे जोड़ूं?

When /^I do something$/ do 
    fill_in "a_text_box", :with => "stuff" 
    fill_in "another_text_box", :with => "another_thing" 
end 

धन्यवाद!

उत्तर

5

ककड़ी में, मैं दो चरणों में यह कर दिया है:

/features/support/env.rb में, निम्न पंक्ति जगह:

Capybara.javascript_driver = :webkit 

तो ककड़ी सुविधा में, बस विशिष्ट परिदृश्य से पहले, परिदृश्य से ठीक पहले @javascript जोड़ें - इस तरह:

@javascript 
Scenario: Successful sign in - with no flash message if using current firefox 
When I'm using a current version of Firefox 
When I visit the practitioner home page with "[email protected]"'s token 
Then I should be signed in as practitioner "Jane Doe" 
And I should be on the practitioner activities welcome page 
And I should not see a flash message warning me I have an unsupported browser 

यह उस विशेष परिदृश्य को चलाते समय javascript चालक का उपयोग करने के लिए ककड़ी बताता है।

इस प्रकार मैंने कैपिबरा वेबकिट का उपयोग करके यह किया है - मुझे यकीन है कि अन्य ड्राइवर समान हैं।

+1

Capybara अब स्वचालित रूप से किसी भी नामित ड्राइवर को स्विच करता है जो आपके परिदृश्य पर एक टैग से मेल खाता है, बल्कि यह '@ जावास्क्रिप्ट' के लिए एक विशेष मामला है। जैसे यदि आप 'टैबलेट' ड्राइवर बनाते हैं और अपने परिदृश्य को '@ टैबलेट' के साथ टैग करते हैं, तो 'टेबलेट' ड्राइवर स्वचालित रूप से उपयोग हो जाएगा! –

+0

उत्तर पर विस्तार के लिए धन्यवाद। –

+0

क्या यह परिदृश्य के लिए विशिष्ट परीक्षण करता है और बाद में डिफ़ॉल्ट पर वापस आ जाता है? – Goalie

4
Capybara.current_driver = :webkit # temporarily select different driver 
#... tests ... 
Capybara.use_default_driver  # switch back to default driver 
+1

मैं डाल सकते हैं 'Capybara.current_driver =: वेबकिट 'कब समूह के ठीक पहले और फिर' Capybara.user_default_driver' के बाद? – Goalie

0

ककड़ी के साथ आप टैग का उपयोग करके इसे प्राप्त कर सकते हैं। उदाहरण के लिए, यदि आपका डिफ़ॉल्ट ड्राइवर वेबकिट है लेकिन आप सेलेनियम के साथ कुछ परिदृश्य चलाने के लिए चाहते हैं तो आप इसे @selenium से टैग कर सकते हैं। यह डिफ़ॉल्ट

द्वारा gem 'selenium-webdriver' साथ काम करता है सामान्य में, अगर आप कुछ अन्य ड्राइवर (इस उदाहरण में बिना सिर क्रोम) करने के लिए स्विच करना चाहते हैं, features/support/drivers.rb में निम्नलिखित कोड डालें:

# features/support/drivers.rb 
Around '@headless_chrome' do |scenario, block| 
    begin 
    Capybara.current_driver = :headless_chrome # temporarily select headless chrome 
    block.call 
    ensure 
    Capybara.use_default_driver    # switch back to default webkit driver 
    end 
end