2011-12-07 12 views
14

Zwykle używam serwera dev w porcie 3000.Podczas pracy z selenem przy użyciu kapibara/szyn, w jaki sposób mogę skonfigurować serwer?

Kapibara/Ogórek używa Capybara.server_port = 31337. Jeśli mogę zamienić z domyślnego sterownika do selenu, wygląda na to, że stara się łączyć na porcie 80.

Próbuję zrozumieć:

  • Przy użyciu selen, muszę osobno instancji test serwer w środowisku testowym.
  • Jeśli odpowiedź na powyższe pytanie brzmi "tak", w jaki sposób mogę to zrobić, aby móc płynnie przełączać się między sterownikami sieciowymi bez konieczności ciągłego zmieniania rzeczy?

Jeśli ktoś ma przykład konfiguracji env.rb, która mogłaby pomóc, proszę daj mi znać!

Dzięki!

Chris.

Odpowiedz

14

Jeśli używasz selenu, powinieneś uruchomić serwer WWW w środowisku testowym. Możesz go uruchomić na innym porcie niż programowanie. Następnie należy skonfigurować Capybara używać tego portu:

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 

Jeśli nie chcesz za każdym razem, aby uruchomić serwer przed uruchomieniem swoje scenariusze ogórka Proponuję użyć capybara webkit sterownik. Wszystkie scenariusze javascript będą działać w tle. Będzie również działać na serwerze ciągłej integracji.

Jeśli korzystasz z platformy Linux, capybara-webkit wymaga uruchomienia serwera X. Aby go skonfigurować, możesz użyć klejnotu headless. Oto konfiguracja bez głowy dla ogórka:

# 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

To może ale nie musi odpowiedzieć na twoje pytanie, ale oto mój plik env.rb (odpowiednie bity).

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

Mam też to tam:

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 

Może masz Capybara.app_host i linii .server_port wewnątrz bitu register_driver i przełączyć sterownik w skryptach ogórka. :/