2010-12-19 12 views

答えて

6

ステップ1.ローカルDNSを設定して必要なときにdefault_hostを設定します。

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

ステップ2.サブドメインをサポートカピバラドライバを使用してください。

セレンまたはアケファロスがこのトリックを行います。

仕様/サポート/ 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 

は、あなたがしたいカピバラドライバを選択し、いずれかのラックテスト(デフォルト)を除き、セレンまたはakpehalosまたは何でもしたい、

あなたのドメインとポートを選択してください。

ステップ3:|コンフィグ

あなたのスペック/ spec_helper.rb

RSpec.configureが何にconfig.beforeブロックを追加|
config.before:各行う Capybara.app_host = "http://davinci.testing.dev:8082" 終了
エンド

もちろん、あなた好みのドメインとポートを入れてください。

ステップ4:

サブドメインを切り替えるためにヘルパーを追加します。

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

スペック/受諾/サポート/ helpers.rbはもちろん、お好みのドメインとポートを入れてください。

ステップ5.スペックでヘルパーメソッドを使用します。

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

答えが本当に役に立ちました! –

4

これはカピバラの質問です。あなたはそれが

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

こののみ動作しますが、ラック・テストを使用していない場合:

今、すべての回あなたが行うサブドメインの変更したいです。これは、セレンとAkephalosで動作します。 – Nerian

関連する問題