2017-05-30 17 views
10

के साथ निर्मित सिस्टम टेस्ट को कॉन्फ़िगर करना RailsConf video on ActionDispatch::systemTestCase देखने के बाद, मैं इसे अपने वर्तमान ऐप में शामिल करने के लिए उत्साहित था।रेल 5.1 आरएसपीसी

कॉन्फ़िगरेशन को हमारे वर्तमान सेटअप के लिए काम करना मुश्किल था, लेकिन अंत में हम इसे काम कर चुके थे, धन्यवाद, अवीडी ग्रिम द्वारा लिखे गए एक लेख के लिए धन्यवाद: Configuring database_cleaner with Rails, RSpec, Capybara, and Selenium

मेरी आशा रेल 5.1 में जारी रेलों के अंतर्निहित सिस्टम परीक्षणों का उपयोग करना था। रेल अब प्रणाली परीक्षण में बनाया गया है के बाद से:

  • rspec
  • factory_girl

और वह ऐसा इसलिए है क्योंकि ActionDispatch::systemTestCasecapybara का ख्याल रखता है, database_cleaner: सब मैं विन्यस्त के बारे में चिंता करने की आवश्यकता होगी पीछा कर रहा है , और यह पहले से ही selenium ड्राइवर के लिए कॉन्फ़िगर किया गया है।

उदाहरण के लिए:

#spec/features/blogs/creating_blogs_spec.rb 
require "rails_helper" 

RSpec.feature "Logged in User can create a blog" do 
    before do 
    create(:logged_in_user) 
    end 

    scenario "successfully", js: true do 
    ... 
    end 
end 

तो यह हैं कि एक सामान्य एकीकरण/सुविधा/प्रणाली कल्पना टेस्ट स्वीट कॉन्फ़िगर किया गया के लिए कैसा लग सकता है: वर्तमान में मेरे feature specs (RSpec के संदर्भ में Capybara) इसलिए की तरह लिखा जाता है rspec, database_cleaner, factory_girl, और capybara के साथ। मैं इसे ActionDispatch::systemTestCase का उपयोग करने के लिए परिवर्तित करना चाहता हूं।

हालांकि: RSpec के संदर्भ में मैं ActionDispatch::systemTestCase का उपयोग करना चाहता हूं।

ऊपर RailsConf वीडियो दिखाता है कि कैसे ActionDispatch :: systemTestCase रेल 'डिफ़ॉल्ट टेस्ट स्वीट लेआउट (पूर्व: एक test निर्देशिका में स्थित परीक्षण के साथ minitest) के संदर्भ में काम करता है, लेकिन यह ActionDispatch का उपयोग कैसे करें के बारे में बात नहीं की थी :: systemTestCase आरएसपीसी के संदर्भ में।

मुझे system testing section of the rails guides के भीतर आरएसपीईसी के साथ कॉन्फ़िगर करने योग्य रेल के अंतर्निहित सिस्टम परीक्षण बनाने पर कोई संसाधन नहीं मिला। क्या यह संभव है?

उत्तर

9

अद्यतन अक्टूबर 2017:

Rspec-रेल 3.7 अब प्रणाली परीक्षण के साथ पूरी तरह से संगत है।

RSpec.configure do |config| 
    config.before(:each, type: :system) do 
    driven_by :rack_test 
    end 

    config.before(:each, type: :system, js: true) do 
    driven_by :selenium_chrome_headless 
    end 
end 

https://medium.com/table-xi/a-quick-guide-to-rails-system-tests-in-rspec-b6e9e8a8b5f6

:

असल में, यह सब आप अपने spec_helper.rb को जोड़ने के लिए है

4

RailsConf टॉक के अनुसार: Teaching RSpec to Play nice with Rails, rspec-rails 3.6.0 के रूप में यह रेलों 'प्रणाली परीक्षण एकीकरण के साथ संगत नहीं है।

ऐसा लगता है कि this pull request के माध्यम से संगतता पर काम किया जा रहा है।

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