我希望在JUnit中编写Selenium测试用例,并在多个浏览器中测试我的项目,我希望利用所有Selenium驱动程序都实现相同接口的优势。
每个测试用例应该长这样:
package fm;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import static org.junit.Assert.*;
public class HomepageTest {
@Test
public void testTitle(WebDriver driver) {
driver.get("http://localhost/");
assertEquals("Foo", driver.getTitle());
}
@Test
public void testSearchForm(WebDriver driver) {
//...
}
}
传递的WebDriver实现应在某个地方进行集中控制。我可能需要覆盖一些JUnit行为,希望这是可能的。
我希望以这种方式做到以下两点:
1. 代码重复:如果每个测试用例都在@Before中初始化所有测试的浏览器,那么测试套件将有很多重复的代码,难以维护。
2. 测试套件速度:如果我对顺序和传递的WebDriver实现进行了集中控制,我可以轻松管理打开例如Firefox,在其中运行所有测试用例,关闭它并打开下一个浏览器。如果每个测试用例都要自己打开和关闭浏览器,将会增加每次测试运行的时间。
有人有想法该如何做吗?谢谢。