5.13 - 程序化运行TestNG
你可以在程序中非常轻松的调用TestNG的测试:
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] { Run2.class });
testng.addListener(tla);
testng.run();
本例中创建了一个 TestNG 对象,并且运行测试类 Run2。它添加了一个 TestListener(这是个监听器) 。你既可以使用适配器类 org.testng.TestListenerAdapter 来做,也可以实现org.testng.ITestListener 接口。这个接口包含了各种各样的回调方法,能够让你跟踪测试什么时候开始、成功、失败等等。
类似的你可以用 testng.xml 文件调用或者创建一个虚拟的 testng.xml 文件来调用。为此,你可以使用这个包 org.testng.xml中的类: XmlClass、XmlTest等等。每个类都对应了其在xml中对等的标签。
例如,假设你要创建下面这样的虚拟文件:
<suite name="TmpSuite" >
<test name="TmpTest" >
<classes>
<class name="test.failures.Child" />
<classes>
</test>
</suite>
你需要使用如下代码:
XmlSuite suite = new XmlSuite();
suite.setName("TmpSuite");
XmlTest test = new XmlTest(suite);
test.setName("TmpTest");
List<XmlClass> classes = new ArrayList<XmlClass>();
classes.add(new XmlClass("test.failures.Child"));
test.setXmlClasses(classes) ;
之后你可以传递这个 XmlSuite 给 Test