2010-12-19 17 views

Trả lời

6

Bước 1. Thiết lập DNS cục bộ.

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

Bước 2. Sử dụng một trình điều khiển Capybara có hỗ trợ tên miền phụ.

Hoặc Selenium hoặc Akephalos sẽ thực hiện thủ thuật.

Tạo đặc tả/support/custom_env và đưa nội dung này trong đó:

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

Chọn trình điều khiển Capybara mà bạn muốn, hoặc Selenium hoặc akpehalos hoặc bất cứ điều gì bạn muốn, trừ rack-test (mặc định)

Đặt tên miền và cổng của bạn lựa chọn, tất nhiên.

Bước 3:

Thêm khối config.before để spec của bạn/spec_helper.rb

RSpec.configure làm | cấu hình |
config.before: mỗi làm Capybara.app_host = "http://davinci.testing.dev:8082" cuối
cuối

Đặt tên miền và cổng của bạn lựa chọn, tất nhiên.

Bước 4:

Thêm trợ giúp để chuyển tên miền phụ.

Spec/chấp nhận/support/helpers.rb

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

Đặt tên miền và cổng của bạn lựa chọn, tất nhiên.

Bước 5. Sử dụng phương pháp trợ giúp trong thông số kỹ thuật của bạn.

Bây giờ mỗi lần bạn muốn thay đổi các tên miền phụ bạn làm:

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

câu trả lời thực sự hữu ích! –

4

Đây là câu hỏi về Capybara. Đặt số default_host khi bạn cần

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

chỉ này hoạt động nếu bạn không sử dụng rack thử nghiệm. Nó hoạt động với Selenium và Akephalos. – Nerian

Các vấn đề liên quan