首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JUnit、Selenium和tearDown

JUnit、Selenium和tearDown
EN

Stack Overflow用户
提问于 2010-07-27 21:16:27
回答 2查看 4.4K关注 0票数 2

这样的junit:

代码语言:javascript
复制
    @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()中是否启用了selenium,但我无法找到任何解决方案。

附言:我读过这个: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博客端也停机了

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-28 18:04:37

您可以将selenium变量设为静态变量,在@BeforeClass静态方法中对其进行初始化,并在@AfterClass中进行清理:

代码语言:javascript
复制
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(); 
  }
}
票数 3
EN

Stack Overflow用户

发布于 2010-07-27 22:35:36

使用@AfterClass注释。

http://junit.sourceforge.net/doc/faq/faq.htm#organize_3

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3343979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档