Веб-драйвер (ChromeDriver) с Play? - PullRequest
       24

Веб-драйвер (ChromeDriver) с Play?

2 голосов
/ 11 сентября 2011

Я использую ChromeDriver с Play!фреймворк.У меня есть UnitTest, где создается экземпляр ChromeDriver, и я делаю запрос get на мой URL Dyndns.Когда тест запускается, он открывает Chrome, делает запрос, но нет ответа.Это ждет бесконечно.И когда я закрыл Chrome, testrunner завершился сбоем за исключением:

A org.openqa.selenium.WebDriverException было обнаружено, Chrome не ответил на «NavigateToURL».Прошедшее время составило 116077 мс.Детали запроса: ({"command": "NavigateToURL", "navigation_count": 1, "tab_index": 0, "url": "http://myurl.dyndns.org:9000/test/","windex":0}). (ВНИМАНИЕ: сервер не предоставил никакой информации о трассировке стека) Информация о сборке: версия:'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! самостоятельно) без проблем запускается, но мне нужны методы assert в JUnit, и, безусловно, лучше, чтобы все тесты запускались из одного и того же модуля (у меня есть много других модульных и функциональных тестов). Есть идеи, чтобы это исправить?Спасибо.

1 Ответ

2 голосов
/ 23 сентября 2011

В результате http://localhost:9000/@tests отправляет веб-запрос на .class" rel="nofollow">http://localhost:9000/@tests/.class, чтобы ваш тестовый класс занял один поток, а ваш тест пытается отменить запрос на * 1006.* блокируется до завершения запроса на .class" rel="nofollow">http://localhost:9000/@tests/.class.Таким образом, вы ждете бесконечно, поскольку по умолчанию количество потоков равно одному.Поэтому, если вы увеличите 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работа включает сеть в chrome, тогда я легко мог проследить, как она работает, и тогда стало понятнее, где находится блок.

...