2013-07-04 5 views
9

私は、ユーザのiOSデバイスを模擬したテストプログラムを持っており、データのチャンクをレールサーバに送信しています。このプログラムは、テストの外でうまく動作します。テストの中で、プログラムはサーバーを見つけることができないのですぐにタイムアウトします。ポルターガイストでカピバラを実行しているときに、現在のホスト名とポートを取得するにはどうすればよいですか?

env.rbで

私の設定、:

require 'capybara/poltergeist' 
Capybara.javascript_driver = :poltergeist 
Capybara.server_port = 3123 
Capybara.app_host = "http://0.0.0.0:3123" 

テストの中で、私は

puts Capybara.current_session.current_host 
puts Capybara.current_session.current_url 

のようなものを試してみたなどが、それらはすべて空白です。こう:

はCapybara.current_session

は、メモリ・アドレスを生成しますので、私は、現在のセッションが動作していることを知っています。

これは、カピバラはそうgemfileのように設定している:私はこれに基づいていくつかの質問を見てきましたが、その答えはちょうど私のために動作しません

gem 'capybara', '~> 2.0.2 

。具体的には、カピバラは私が指定したように現在のホストやURLを設定しているようではなく、実際に現在のセッションの内容を見ることもできません。だから私はこれを修正し、特定のポートとURLを指定することができますか?カピバラ< 2.0の場合

答えて

15

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

カピバラ2.0:

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

私はここで答えを見つけました:私はあなたが正しいと仮定しCucumber/Capybara -- how to get the host and port of the current execution

+0

を、私は避難所」応答をテストしました。私はもうこのプロジェクトにはいません:) – mmr

1
Capybara.current_session.driver.server.port 
関連する問題