2014-05-15 2 views
0

방아쇠를 던지거나 테스트 케이스가 끝난 후 올바른 정리를하는 것이 지금은 당분간 궁금합니다.WebDriver 올바른 종료

알림 : 구현에 따라 .exe 프로세스 드라이버 프로세스 인 conhost.exe가 실행되면 브라우저와 Java 응용 프로그램이 시작됩니다.

driver.quit()을 사용하면 테스트 케이스를 완료 한 후 드라이버 프로세스, conhost 및 브라우저를 종료 할 수 있습니다. 예외가 발생 될 수 있습니다 경우

WebDriver driver = new SomethingDriver(); 

// do stuff 

driver.quit(); // Proper cleaning 

그러나, 우리는이 작업을 수행해야합니다

try{ 
     WebDriver driver = new SomethingDriver(); 

     // do stuff 
    } 
catch(Exception e){ 
e.printStackTrace(); 
}   
    finally{ 
     driver.quit(); // Proper cleaning 
    } 

어떤 드라이버 과정과 conhost를 종료하지만, 살아 브라우저를 떠나 어떻습니까? 그것은이 이름 (그러므로 동시 사용 방지)와 모든 프로세스를 죽이고는 윈도우 때문에 쉘 스크립트를 실행 만 (내가 생각하는) 나쁜 :

TASKKILL /F /IM chromedriver.exe 
TASKKILL /F /IM conhost.exe 

것은 (에서의 우리가 무작위로 자바 프로세스를 종료한다고 가정 해 봅시다 Eclipse 또는 작업 관리자). 위에서 언급 한 청소 작업이 어떻게 수행되는지 확인하려면 어떻게해야합니까?

이러한 모든 문제를 훌륭하게 해결하는 코드 솔루션이 있습니까?

답변

0

public class JunitTest1 { 

    private WebDriver driver; 

    @BeforeClass 
    public static void oneTimeSetUp() { 
     // one-time initialization code 
     System.out.println("@BeforeClass - oneTimeSetUp"); 
    } 

    @AfterClass 
    public static void oneTimeTearDown() { 
     // one-time cleanup code 
     System.out.println("@AfterClass - oneTimeTearDown"); 
    } 

    @Before 
    public void setUp() { 
     // before every test 
     driver = new FirefoxDriver(); 
     System.out.println("@Before - setUp"); 
    } 

    @After 
    public void tearDown() { 
     // after every test 
     driver.quit(); 
     System.out.println("@After - tearDown"); 
    } 

    @Test 
    public void testSmthOne() { 
     // the test itself 
     System.out.println("@Test - testSmth"); 
    } 

    @Test 
    public void testSmthTwo() { 
     // the test itself 
     System.out.println("@Test - testSmth"); 
    } 
} 
을 도울 수있는 JUnit을 사용