2011-09-10 6 views
2

Play와 함께 ChromeDriver를 사용하고 있습니다! 뼈대. ChromeDriver가 인스턴스화 된 UnitTest를 가지고 있으며 내 Dyndns url에 요청을받습니다. 테스트가 시작되면 크롬이 열리고 요청을하지만 응답이 없습니다. 그것은 무한정 기다린다. 크롬을 닫았을 때 testrunner는 예외적으로 실패합니다.재생 기능이있는 Webdriver (ChromeDriver)?

org.openqa.selenium.WebDriverException 적발 된, 크롬 '을 navigateToURL'에 응답하지 했다. 경과 시간은 116077 ms입니다. 요청 : 세부 사항 : ({ "명령": "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을 '윈도우 비스타', os.arch : '86', os.version : '6.0', java.version '1.6.0_21'드라이버 정보 : driver.version : RemoteWebDriver

때 UnitTest (및 TestRunner)를 사용하지 않고 Main 메서드 (직접 Play!를 직접 초기화)로 테스트를 직접 시작합니다. 문제없이 테스트를 실행합니다. 하지만 JUnit의 주장 방법이 필요하며 모든 모듈이 동일한 모듈에서 실행되는 것이 좋습니다 (다른 많은 단위 테스트 및 기능 테스트가 있음). 해결 방법이 있습니까? 감사합니다. . 어떻게됩니까

답변

2

이 테스트는 http://localhost:9000/your_path에 요청을 해고하려고 http://localhost:9000/@tests/<your_test_class>.class에 웹 요청 오프 http://localhost:9000/@tests 화재가 테스트 클래스는 하나 개의 스레드를 차지 실행하는 것입니다 차단 http://localhost:9000/@tests/<your_test_class>.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 작업 크롬에서 네트워크에 전환하는 방법을 이해하는 데 도움이 발견 한 것은, 나는 쉽게 그것이 어떻게 작동하는지 추적 할 수 있고 그 때 이상으로 블록이있는 곳을 감지합니다.