在前面的文章中,我们提到过执行TestNG测试的几种方式。最常用的是直接命令行方式启动,如下所示:
java org.testng.TestNG testng.xml
但是在实际的自动化测试应用中,首先要启动测试应用,然后TestNG作为一种测试框架,被测试应用动态编程调用。这就是本文要介绍的在测试应用中编程调用TestNG的实现。
1. 编程调用TestNG,示例如下:
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] { Run2.class });
testng.addListener(new TestListenerAdapter());
testng.run();
说明:首先创建org.testgn.TestNG的对象,然后为其设置必要的属性,如测试类等,最后调用TestNG对象的run()方法。
其中,TestListenerAdapter是一个测试监听器(实现了org.testng.ITestListener接口),响应测试过程中的方法调用。
注意:对于一个基于TestNG的自动测试平台,其往往通过适配器模式编程调用TestNG,而在测试平台内部只需要关心被测试目标的业务逻辑。
2. 对于testng.xml配置文件,也可以通过TestNG提供的有关XML的API动态生成,然后调用TestNG对象的setXmlSuites()方法,示例如下:
XmlSuite suite = new XmlSuite();
//set testng.xml
...
List<XmlSuite> suites = new ArrayList<XmlSuite>();//支持多个testng.xml
suites.add(suite);
TestNG tng = new TestNG();
tng.setXmlSuites(suites);//作为执行测试的参数
tng.run();