2011-07-22 8 views
40

Open :: URIを使用して私のアプリケーションからcsvファイルをダウンロードし、それに完全修飾URIを与える必要があります。だから私のキュウリのスクリプトでホストともっと重要なポートを取得するための最良の方法は何ですか?Cucumber/Capybara - 現在の実行のホストとポートを取得する方法

注私はあなたがcurrent_hostを使用することができますが、それはポートが含まれている場合、私は知りませんカピバラとSelenium

+0

カピバラ外:http://stackoverflow.com/questions/6807268/rails-port-of-testing-environment/17496025#17496025 –

答えて

33

あなたは、アプリケーション・サーバーカピバラ< 2.0の場合

Capybara.server_port = 31337 
+0

それは私のためにやった - ありがとう! – Jonathan

+2

@iafonov、私は、サーバーのホスト '' 'ルビー Capybara.server_host =「0.0.0.0」を設定して31337 –

+0

ための+1は、私はすべてのインターフェイスを聞くことを望んでいたカピバラセレンCapybara.server_portの設定 ' '' – bonyiii

0

を使用しています。代わりに、current_urlを使用してパス(および場合によってはクエリ文字列)を取り除くこともできます。

66

を起動するために使用するポートを設定することができます。

Capybara.current_session.driver.rack_server.host 
Capybara.current_session.driver.rack_server.port 

カピバラ2.0:

FYI
Capybara.current_session.server.host 
Capybara.current_session.server.port 

、私の使用ケースでは、統合テストで生成されたメール内のクリック可能なリンクがあります。

+2

が働いていました統合テストは他の統合テストとは独立して実行されましたが、少なくとも私のenvでは他のテストで実行されたときにポートを変更できませんでした。 capybaraが使用したかったポート番号を尋ねると、複数のテストを実行することでよりうまくいくように見えました。私がすべてのテストのためにポートを変更した場合、自分でいくつかの選択をさせるのではなく、おそらくそれはうまくいったでしょう。 –

+1

私はこのソリューションを使用していましたが、最新のCapybaraバージョンでは動作しません。私はこのエラーが発生しています:NoMethodError:#のための未定義のメソッド 'rack_server ' – Pablo

+0

2.0用に更新されました(それはもっと簡単ですよ!) – Woahdae

関連する問題