2010-12-19 3 views

Antwort

6

Schritt 1 einen lokalen DNS einrichten.

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

Schritt 2. Verwenden Sie ein Capybara-Treiber, der Sub-Domains unterstützen.

Entweder Selen oder Akephalos würde den Trick tun.

erstellen spec/support/custom_env und setzen diesen Inhalt drin:

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

Wählen Sie das Capybara-Treiber, die Sie wollen, entweder Selen oder akpehalos oder was auch immer Sie wollen, außer Rack-Test (Standard)

Setzen Sie natürlich die Domain und den Port Ihrer Wahl.

Schritt 3:

Fügen Sie den config.before Block auf Ihre spec/spec_helper.rb

RSpec.configure tun config |
config.before: jeder tun Capybara.app_host = "http://davinci.testing.dev:8082" Ende
Ende

die Domäne und den Hafen von Ihnen Wahl Put, natürlich.

Schritt 4:

einen Helfer hinzufügen Subdomains zu wechseln.

Spec/Annahme/support/helpers.rb

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

Setzen Sie die Domäne und den Hafen von Ihnen Wahl, natürlich.

Schritt 5. Verwenden Sie die Hilfsmethode in Ihrer Spezifikation.

Jetzt kann jeder Zeit wollen Sie von Sub-Domain ändern, die Sie tun:

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

die Antwort war wirklich hilfreich! –

4

Dies ist eine Capybara Frage. Stellen Sie den default_host wenn Sie es brauchen

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

Dies funktioniert nur, wenn Sie nicht rack-Test. Es funktioniert mit Selenium und Akephalos. – Nerian

Verwandte Themen