2010-12-19 5 views

risposta

6

Passaggio 1. Impostare un DNS locale.

http://intridea.com/2010/6/2/using-bind-locally-on-os-x-for-easy-access-to-subdomains?blog=company

Fase 2. Utilizzare un driver che supportano Capybara sottodomini.

O selenio o Akefalos farebbero il trucco.

Crea spec/supporto/custom_env e mettere questi contenuti in esso:

#Capybara.default_driver = :selenium 
Capybara.default_driver = :akephalos 
Capybara.app_host = 'http://davinci.testing.dev:8082' 
Capybara.run_server = false 
Capybara.server_port = 8082 

Selezionare il driver capibara che si desidera, sia selenio o akpehalos o quello che volete, tranne cremagliera-test (default)

Metti il ​​dominio e la porta di tua scelta, ovviamente.

Fase 3:

Aggiungere il blocco config.before al vostro spec/spec_helper.rb

RSpec.configure fare | config |
config.before: ogni do Capybara.app_host = "http://davinci.testing.dev:8082" fine
fine

Mettere il dominio e la porta di voi scelta, naturalmente.

Fase 4:

Aggiungi un aiutante per passare sottodomini.

Spec/accettazione/supporto/helpers.rb

def switch_to_subdomain(subdomain) 
    Capybara.app_host = "http://#{subdomain}.davinci.testing.dev:8082" 
end 

Metti il ​​dominio e la porta di voi scelta, naturalmente.

Passaggio 5. Utilizzare il metodo di supporto nelle specifiche.

Ora, ogni volta che si desidera cambiare di sottodominio che fate:

scenario "Show school" do       
    school = School.make!(:name=>"perico") 
    switch_to_subdomain(school.name)  
    visit("/")      
    page.has_content?("Welcome to perico") 
end 
+0

la risposta è stata davvero utile! –

4

Questa è una domanda di capibara. Impostare default_host quando necessario

Capybara.default_host = 'sub.domain.com' 
+0

Questo funziona solo se non si utilizza cremagliera-test. Funziona con selenio e aftalco. – Nerian

Problemi correlati