我在3个不同的类中定义了3个测试
第1类 @Test 1
第2类 @Test 2
第3类 @Test 3
我创建了另一个类'类浏览器',我正在创建不同的浏览器驱动程序
现在我想打电话给@ Test1,2& 3来自浏览器类,以便这些测试在不同的浏览器中执行
以下是正确的做法吗?
Class Browsers
{
public static Class1 A =new Class1()
public static Class2 B =new Class2()
public static Class3 C =new Class3()
@Test
public void createCromeDriver(){
A.Test1
B.Test2
C.Test3
}
@Test
public void createIEDriver(){
A.Test1
B.Test2
C.Test3
}
}
(在上面的场景中,我将属于其他类的测试调用到另一个具有自己测试的类中。)
答案 0 :(得分:0)
虽然这确实运行了所有测试,但它假设您只想知道每个驱动程序的一个测试失败。如果所有三个IE测试都失败了,您是否想要三次失败,以便一次性知道这一切?我愿意。
要解决这个问题,请使用Parameterized JUnit Test。这可以让你编写这样的代码。 JUnit将使用每个参数调用每个测试。在我的示例中,它使用IE浏览器运行两个测试。您可以根据需要向browsers()方法添加任意数量的驱动程序,让它为每个浏览器调用两个测试。
@RunWith(Parameterized.class)
public class Browsers {
private WebDriver driver;
public Browsers(WebDriver _driver) {
driver = _driver;
}
@Parameters
public static Collection<WebDriver[]> browsers() {
List<WebDriver[]> list = new ArrayList<WebDriver[]>();
list.add(new WebDriver[] { new InternetExplorerDriver() });
return list;
}
@Test
public void test1() {
A.test1(driver);
}
@Test
public void test2() {
B.test2(driver);
}
}