0

我正在使用 JUnit 自动化功能测试。我遇到了一个问题:如果我遵循“每个测试方法一个(重要)断言”的规则,那么每个测试用例都会有一堆 6 行测试方法(17 是迄今为止最大的数字)。如果我将它们全部放入一个测试方法中,我必须注释掉失败的断言或让一半的测试永远不会启动。

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

第二种方法也好不到哪里去,因为它在任何管理它的情况下都会引入大量的手动工作。

所以,我的问题是: 1. 这种情况的最佳实践是什么?2. 有什么方法可以将测试失败推迟到测试结束吗?我的意思是,不太重要的断言,它不会停止测试运​​行,但最终会导致它失败。

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

4

2 回答 2

0
  1. 您可以使用@BeforeClass 和@AfterClass 为每个测试类启动和关闭浏览器一次,或者您可以创建一个启动浏览器的规则并将其与@ClassRule 一起使用。
  2. ErrorCollector可能会有所帮助。
于 2012-06-04T09:13:40.557 回答
0
@BeforeClass
public static void beforeClass(){

    launchBrowser();

}

@Before
public void before() {

    login();

}

@AfterClass
public static void beforeClass(){

    killBrowser();

}

这可能是您问题的答案

于 2012-06-04T09:20:48.840 回答