2016-08-11 19 views
3

興味深い問題があります。私はテスト駆動開発のためにRspecを使用しており、受け入れテストのためにポルターガイストとCapybaraを使用しています。ああ、FactoryGirlも。 RspecとFactoryGirlはテストデータベースに対して動作していますが、これは私が望むものです。問題は、受け入れテストが開発データベースに対して動作していることです。テストを使用したRspec、開発データベースを使用しているCapybara

これが失敗し、次のような簡単なテストが発生します。

my_class = FactoryGirl.create(:my_class) 
    visit my_classes_path 
    expect(page).to have_content(my_class.title) 

私も使用して道に沿ってスクリーンショットをチェックしました:

page.save_screenshot("screenshot#{__FILE__}_#{__LINE__}.png") 

SOLUTION をだから、明らかにカピバラを使用しようとしました。私が "rails server"をキックオフするときに私のローカル環境で初期化されているのと同じURLとポート。

Capybara.configure do |c| 
    c.run_server = true 
    c.javascript_driver = :poltergeist 
    c.default_driver = :poltergeist 
    c.server_port = 7000 
    c.app_host = "http://localhost:#{c.server_port}" 
end 
+3

あなた自身で解決したら問題を解決するためには、あなた自身の質問に対する答えとしてあなたの解決策を追加して、同じ問題を抱えている可能性のある人々を助け、またインターネットポイントを奪うことができます。 – p4sh4

+0

ありがとう!!!あなたは私を救ってくれる〜 – VKatz

答えて

1

通常の使用のためにあなたが特定のポートにロックまたはapp_host設定する必要はありません。下図のように私のカピバラの設定で別のポートを指定すると、トリックをしました。 app_hostが設定されていない場合、Capybaraのデフォルトはhttp://#{Capybara.server_host}:#{Capybara.server_port}になります。デフォルトではhttp://127.0.0.1:<the port capybaraがサーバを実行します。あなたがlocalhostの代わりに、127.0.0.1(ためのIPv6か何かの)を使用する必要がある場合は、だけではなく、アプリホストの

Capybara.server_host = 'localhost' 

を設定し、ポートを固定しています。 app_hostは、外部サイトをテストしようとしているとき、またはアプリケーションをテストするためにサブドメインにアクセスする必要があるときのためのものです。

関連する問題