JUnit,Selenium和tearDown

时间:2010-07-27 13:16:27

标签: java junit selenium

这样一个junit:

    @Test
    public void testA {
//some code here...
}

    @Test
    pulic void testB {
//some code here...
}   
    @After
    public void closeBrowsers() throws Exception {
selenium.stop();
}

这是一个问题:每个测试方法后调用closeBrowsers()方法;在那种情况下,它被调用两次,我得到“错误的测试结束。”来自JUnit。我需要一个junit方法/注释,它将在所有测试完成后调用(在所有测试完成后调用一次),是否可能?

此外,我试图在closeBrowsers()中检查硒是否已启动,但我无法找到 任何解决方案。

P.S:我读过这篇文章:How to close a browser on a selenium RC server which lost it's client

但我无法理解解决方案,目前http://www.santiycr.com.ar/djangosite/blog/posts/2009/aug/25/close-remaining-browsers-from-selenium-rc博客方面已经失效

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:3)

你可以让你的selenium变量静态,在@BeforeClass静态方法中初始化它,并在@AfterClass中清理:

public class ...... {

  private static Selenium selenium;

  @BeforeClass
  public static void initSelenium() {
     selenium = new DefaultSelenium(...); // or initialize it in any other way
  }

  @Test
  public void testA {...}

  @Test
  pulic void testB {...}

  @AfterClass
  public static void closeBrowsers() throws Exception { 
    selenium.stop(); 
  }
}