2011-09-10 16 views
2

PlayでChromeDriverを使用しています。フレームワーク。私はChromeDriverがインスタンス化され、私のDyndns URLにリクエストを出すUnitTestを持っています。テストが始まると、クロームが開き、要求は出ますが、応答はありません。それは無期限に待つ。クロムを閉じたとき、テストランナーは例外で失敗します。 org.openqa.selenium.WebDriverExceptionがキャッチされましたPlay with Webdriver(ChromeDriver)?

A、Chromeは は 'のnavigateToURL' に応答しませんでした。経過時間は116077msであった。リクエスト: 詳細: ({"コマンド": "NavigateToURL"、 "navigation_count":1、 "tab_index":0、 "url": "http://myurl.dyndns.org:9000/test/"、 "windex ":0})。 (警告:サーバはスタックトレース情報を提供していません)Build info:version: '2.5.0'、改訂: '13516'、時刻: '2011-08-23 18:29:57' システム情報:os .nameの 'Windows Vistaの'、os.arch 'のx86'、os.version: '6.0'、のjava.version: '1.6.0_21' ドライバー情報:driver.version: RemoteWebDriver

私はUnitTest(とTestRunner)を使用せず、メインメソッド(直接Play!を自分で初期化する)で直接テストを開始しますが、テストは問題なく実行されます。しかし、私はJUnitのアサートメソッドが必要であり、すべてのテストが同じモジュールから実行されていることが確実です(他の多くのユニットテストと機能テストがあります)。 これを修正するためのアイデアはありますか?おかげさまで

答えて

2

何が起こることは一つのスレッドを占有して、あなたのテストクラスを実行するためにhttp://localhost:9000/@tests/<your_test_class>.classへのWeb要求オフhttp://localhost:9000/@tests火災ということで、あなたのテストはhttp://localhost:9000/@tests/<your_test_class>.class仕上げのために要求されるまでhttp://localhost:9000/your_pathそのブロックに要求をオフに解雇しようとします。したがって、デフォルトではスレッド数は1であるため、無期限に待機します。したがって、play.pool> 1を大きくすると、テストスイートが正常に動作します。

参照のconf/application.conf

# Execution pool 
# ~~~~~ 
# Default to 1 thread in DEV mode or (nb processors + 1) threads in PROD mode. 
# Try to keep a low as possible. 1 thread will serialize all requests (very useful for  debugging purpose) 
# play.pool=3 

注:私は@tests作業はクロームでネットワークをオンにする方法を理解するのに役に立ったことの一つは、私は簡単にそれがどのように動作するか追跡可能性があり、それがより多くを作りましたブロックがどこにあったかを知る。

関連する問題