我想将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 但每次运行时都可以执行差异步骤。
答案 0 :(得分:0)
您从列表转换为数组会导致执行。如果您提供目标数组,则不需要转换结果。
Class[] arrClass = lsClass.toArray(new Class[lsClass.size()]);