2017-05-05 7 views
6

documentation for Rails 5.1 system tests थोड़ा सा स्पैस है। मैं हेडलेस परीक्षण प्राप्त करने में असमर्थ हूं जो जावास्क्रिप्ट चल रहा है। मुझे लगता है कि एक दृष्टिकोण xvf को स्थापित करने और चलाने में शामिल है। लेकिन यह रेल के अन्य संस्करणों में कैपिबरा चलाने के दौरान उपयोग किए जाने से अधिक मैन्युअल सेटअप है।मैं रेल 5.1 में हेडलेस ब्राउज़र सिस्टम परीक्षण कैसे चला सकता हूं?

इसे प्राप्त करने का सबसे सरल तरीका क्या है?

उत्तर

8

रेल में 5.1 सिस्टम परीक्षण का उपयोग किया गया चालक driven_by द्वारा सेट किया गया है एप्लीकेशनसिस्टम टेस्टकेस (test/application_system_test_case.rb) में कॉल करें। मान लें कि आप 'वेबकिट' आप

driven_by :webkit 

एक अन्य संभावित विकल्प करने के लिए यदि आप Chrome 59+ linux पर उपयोग में सक्षम होना चाहिए के रूप में अपने capybara-वेबकिट ड्राइवर पंजीकृत किया है/मैक नेतृत्वहीन क्रोम का उपयोग है

Capybara.register_driver :headless_chrome do |app| 
    Capybara::Selenium::Driver.new(app, :browser => :chrome, :args => ['headless']) 
end 

और फिर अपने परीक्षण का मामला कक्षा में

driven_by :headless_chrome 

कि आप chrome के एक बिना सिर संस्करण देता है तो capybara-वेबकिट/poltergeist के मुद्दों वर्तमान वेब मानकों का समर्थन नहीं में से कोई भी। दुर्भाग्यवश वर्तमान में क्रोमरेड्रिवर में जेएस सिस्टम मोडल्स (चेतावनी, पुष्टि, त्वरित - कैपिबरा मास्टर शाखा में वर्कअराउंड) के साथ समस्याएं हैं और यदि आप अपने परीक्षणों के दौरान विंडो बंद करने का प्रयास करते हैं तो लटकते हैं। उम्मीद है कि उन 2 मुद्दों को जल्द ही तय कर दिया जाएगा।

यह भी ध्यान रखें कि रेल 5.1 ने अधिकांश लोगों के परीक्षण के लिए डेटाबेस_क्लानेर की आवश्यकता को हटा दिया होगा क्योंकि यह परीक्षण मोड में एकाधिक थ्रेड के बीच पहले से ही एक डेटाबेस कनेक्शन साझा करने को संभालता है।

+0

धन्यवाद! "मान लीजिए कि आपने अपना कैपिबरा-वेबकिट ड्राइवर पंजीकृत किया है 'वेबकिट' '- मैं यह कैसे कर सकता हूं? –

+1

@JynBachir 'Capybara.register_driver' का उपयोग करते हुए - जब आप अपनी परियोजना में कैपिबरा-वेबकिट शामिल करते हैं तो एक ऑटो पंजीकृत होगा - आपको केवल उस सेटिंग को बदलने की आवश्यकता होगी यदि आपको सेटिंग बदलने की आवश्यकता है जिसे केवल ड्राइवर पंजीकरण के माध्यम से कॉन्फ़िगर किया जा सकता है - https : //github.com/teamcapybara/capybara#configuring-and-adding-drivers –

+0

बहिष्करण संदेश से बचने के लिए, आपको 'सेलेनियम :: वेबड्राइवर :: क्रोम :: [add_argument' वाक्यविन्यास' का उपयोग करने की आवश्यकता होगी। Options'] (https://seleniumhq.github.io/selenium/docs/api/rb/Selenium/WebDriver/Chrome/Options.html#add_argument-instance_method)। – croceldon

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

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