java—在不同浏览器中运行测试

eit6fx6z  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(401)

我在3个不同的类中定义了3个测试
1级@测试1
2级@测试2
3级@测试3
我已经创建了另一个类“类浏览器”,其中我正在创建不同的浏览器驱动程序
现在我想从browsers类中调用@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
}

}

(在上面的场景中,我将属于其他类的测试调用到另一个拥有自己测试的类中。)

zbwhf8kr

zbwhf8kr1#

虽然它确实运行所有测试,但它假设您只想知道每个驱动程序的一个测试失败。如果这三个ie测试都失败了,你想三次失败,这样你就可以一次知道这一切了吗?我会的。
为了解决这个问题,可以使用参数化的junit测试。这样就可以编写这样的代码。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);
    }

}

相关问题