JUnit - 推迟断言失败

时间:2012-06-04 08:56:08

标签: testing junit automated-tests

我使用JUnit自动执行功能测试。我遇到了一个问题:如果我遵循规则"每个测试方法一个(重要)断言"然后我每个测试用例最终得到一堆6行测试方法(17是最大的数字)。如果我将它们全部放入一个测试方法中,我必须注释掉失败的断言,或者让一半的测试从未启动。

我不喜欢第一种方式,因为它启动浏览器的次数太多了,而且浏览器启动+登录/注销似乎更加昂贵"并且比测试运行本身耗费时间。

第二种方式并不是更好,因为它在任何管理它的情况下都会引入大量的手工工作。

所以,我的问题是: 1.此类案件的最佳做法是什么? 2.有没有办法将测试失败推迟到测试结束?我的意思是,不那么重要的断言,它不会阻止测试运行,但最终导致它失败。

UPD:是的,我正在使用Selenium。我为每个测试类都有一个父类来统一他们的设置。

2 个答案:

答案 0 :(得分:0)

  1. 您可以使用@BeforeClass和@AfterClass为每个测试类启动和关闭浏览器一次,或者您可以创建一个启动浏览器并与@ClassRule一起使用的规则。
  2. ErrorCollector可能会有帮助。

答案 1 :(得分:0)

@BeforeClass
public static void beforeClass(){

    launchBrowser();

}

@Before
public void before() {

    login();

}

@AfterClass
public static void beforeClass(){

    killBrowser();

}

这可能是你问题的答案