如何在Java中多次调用testng类

时间:2018-03-06 03:42:17

标签: java testng

我想将TestNG用于我的自动测试工具,以便在执行测试时为所有测试生成报告,如下所示。

for (int i = 1; i < 100; i++) {
    ITestNGListener tla = new TestListenerAdapter();
    TestNG testng = new TestNG();
    testng.setTestClasses(MyTestng.class);
    testng.addListener(tla);
    testng.run();
}

但它只是在MyTestng.Class中只为一个测试创建了一个报告 我试着将其改为。

List<Class> lsClass = new ArrayList<Class>();
......
for (int i = 1; i < 100; i++) {
     MyTestng test = new MyTestng (ls_test_step, ls_test_data, test_case) 
     lsClass.add(test.getClass());
}
....
Class[] arrClass = new Class[lsClass.size()];
arrClass = (Class[]) lsClass.toArray();

ITestNGListener tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(arrClass);
testng.addListener(tla);
testng.run();

无法执行,因为例外: java.lang.ClassCastException:[Ljava.lang.Object;无法转换为[Ljava.lang.Class;     在core.App.main(App.java:101)

问题是我只有一个班级 MyTestng 但每次运行时都可以执行差异步骤。

1 个答案:

答案 0 :(得分:0)

您从列表转换为数组会导致执行。如果您提供目标数组,则不需要转换结果。

Class[] arrClass = lsClass.toArray(new Class[lsClass.size()]);