6

我想从牛排规范访问 user1.application.local.dev/panel/new。

我该怎么做?

4

2 回答 2

6

步骤 1. 设置本地 DNS。

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

步骤 2. 使用支持子域的 Capybara 驱动程序。

Selenium 或 Akephalos 都可以解决问题。

创建 spec/support/custom_env 并将此内容放入其中:

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

选择您想要的水豚驱动程序,Selenium 或 akpehalos 或任何您想要的,除了机架测试(默认)

当然,放置您选择的域和端口。

第 3 步:

将 config.before 块添加到您的 spec/spec_helper.rb

RSpec.configure 做 |config|
config.before :each do Capybara.app_host = " http://davinci.testing.dev:8082 " end
end

当然,放置您选择的域和端口。

第4步:

添加一个助手来切换子域。

规范/接受/支持/helpers.rb

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

当然,放置您选择的域和端口。

步骤 5. 在您的规范中使用辅助方法。

现在,每次您想要更改子域时,您都会这样做:

scenario "Show school" do                        
   school = School.make!(:name=>"perico")
   switch_to_subdomain(school.name)    
   visit("/")                      
   page.has_content?("Welcome to perico")
end
于 2010-12-24T13:53:13.837 回答
4

这是一个水豚问题。default_host需要时设置

Capybara.default_host = 'sub.domain.com' 
于 2010-12-21T14:00:09.517 回答