2011-12-07 20 views
14

Normalde, raylar sunucusunu bağlantı noktası 3000'de kullanıyorum.Selenyum'u capybara/raylarla çalıştırırken, sunucuyu nasıl yapılandırabilirim?

Capybara/Cucumber, Capybara.server_port = 31337 kullanıyor. Ben selenyum varsayılan sürücüsünden takas Eğer bağlantı noktasında bağlanmaya çalışır gibi görünüyor 80.

ben anlamaya çalışıyorum:

  • selenyum kullanarak, ayrı ayrı bir test örneğini gerekiyor sınama ortamında sunucu.
  • Yukarıdaki sorunun cevabı evet ise, bunu nasıl değiştirebilirim, böylece şeyleri değiştirmeye gerek kalmadan web sürücüleri arasında kolayca geçiş yapabilir miyim?

Birisi env.rb yapılandırmasının bir örneğine sahipse, lütfen bana bildirin!

Teşekkürler!

Chris.

cevap

14

Selenyum kullanıyorsanız, web sunucusunu sınama ortamında başlatmalısınız. Bunu geliştirmeden farklı bir bağlantı noktasından başlatabilirsiniz. Sonra o bağlantı noktasını kullanmak üzere Capybara yapılandırmak olmalıdır:

Capybara.run_server = true #Whether start server when testing 
    Capybara.server_port = 8200 
    Capybara.default_selector = :css #:xpath #default selector , you can change to :css 
    Capybara.default_wait_time = 5 #When we testing AJAX, we can set a default wait time 
    Capybara.ignore_hidden_elements = false #Ignore hidden elements when testing, make helpful when you hide or show elements using javascript 
    Capybara.javascript_driver = :selenium #default driver when you using @javascript tag 
    # Other option is: 
    # Capybara.javascript_driver = :webkit 

Eğer sana capybara webkit sürücüsünü kullanmak önermek için salatalık senaryoları çalıştırmadan önce sunucuyu her başlatmak için istemiyorsanız. Tüm javascript senaryoları arka planda çalışır. Ayrıca sürekli entegrasyon sunucusu üzerinde çalışacaktır.

Linux platformundaysanız, capybara-webkit'in çalışması için bir X sunucusu gerekir. Kurmak için headless gem kullanabilirsiniz. İşte salatalık için başsız yapılandırma:

# place code below in features/support/headless.rb 
if Capybara.current_driver == :webkit 
    require 'headless' 

    headless = Headless.new 
    headless.start 

    at_exit do 
    headless.destroy 
    end 
end 
4

Bu, sorunuzu yanıtlayabilir veya vermeyebilir, ancak işte benim env.rb dosyam (ilgili bitler).

Capybara.app_host = "http://0.0.0.0:3000" 
Capybara.server_port = 3000 

Ben de orada bu var:

Capybara.register_driver :iphone do |app| 
    require 'selenium/webdriver' 
    profile = Selenium::WebDriver::Firefox::Profile.new 
    profile['general.useragent.override'] = "iPhone" 

    Capybara::Selenium::Driver.new(app, :profile => profile) 
end 

Belki Capybara.app_host ve register_driver bit içindeki .server_port hatları ve Salatalık komut sürücüyü geçiş yapabilirsiniz. :/

İlgili konular