2011-04-22 3 views
1

디버그 모드에서 테스트를 중단 할 때 리소스를 정리하는 방법은JUnit4 (JUnitRunner/Testcase)에서 어떻게 처리합니까?디버그 모드에서 JUnit4 테스트를 중단하면 리소스를 정리하는 방법은 무엇입니까?

JUnit 테스트를 구현하여 Selenium WebDriver를 사용합니다. 디버그에서 테스트를 실행할 때 중지 버튼을 클릭하여 테스트를 중단하면 내 탐색기가 여전히 열립니다. 메서드를 호출하여이 네비게이터를 닫고 싶습니다. 그러나 나는이 방법을 어디서 부를지 모른다. 사실, BlockJUnit4ClassRunner을 내 자신의 러너로 바꾸었고 WebDriverTestCase을 구현했습니다. 그래서 나는 많은 일을 할 수 있습니다.

는 내가하는 System.exit()와 방법 checkExit 내가 디버그 모드에서 내 시험을 중단 할 때 보안 관리자가 호출되지 않습니다 (INT 상태)하지만를, (내 자신의 보안 관리자 를 구현하고 무시하려고, 그것을 올바르게 작동합니다.)

+0

jvm이 종료된다는 것을 알고 있습니까? 그렇다면 jvm이 종료 될 때 종료 훅을 추가하여 사용자 정의 코드를 실행할 수 있습니다. – sbridges

+1

중지 버튼을 클릭하면 테스트를 실행하는 JVM이 종료 될 수 있습니다. 프로세스에 보내는 신호에 따라 신호 처리기를 설치하여 탐색기를 닫을 수 있습니다 – NamshubWriter

답변

2

내가 아는 한 디버그 세션을 중단 할 때 아무 것도 실행할 방법이 없습니다.

이런 종류의 문제를 해결할 수있는 유일한 방법은 다음과 같습니다. 설정을 해체하십시오.

즉, 이전 브라우저 프로세스가 계속 실행중인 경우 @Before 메소드를 체크하고 새 웹 드라이버를 만들고 이미 있으면 그것을 죽여야합니다. (How to get a list of current open windows/process with Java?Killing a process using Java을 참조하십시오.

또한 임시 디렉토리에서 webdriver 디렉토리를 삭제하려고합니다.

관련 문제