TestNG的调用有以下几种方式:
- testng.xml
- ant
- 命令行
这部分主要介绍testng.xml的格式。
当前testng.xml的DTD(文档类型定义(Document Type Definition)是一套关于标记符的语法规则)可以在 http://testng.org/testng-1.0.dtd网站找到。
下面是testng.xml文件的一个栗子
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="Suite1" verbose="1" > <test name="Nopackage" > <classes> <class name="NoPackageTest" /> </classes> </test> <test name="Regression1"> <classes> <class name="test.sample.ParameterSample"/> <class name="test.sample.ParameterTest"/> </classes> </test> </suite>
你可以指定package包名来代替类名,在这个例子中,TestNG会查找test.sample包内的所有类,并保证只有类有TestNG标注。
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="Suite1" verbose="1" > <test name="Regression1" > <packages> <package name="test.sample" /> </packages> </test> </suite>
你也可以指定包含和排除的组和方法
<test name="Regression1"> <groups> <run> <exclude name="brokenTests" /> <include name="checkinTests" /> </run> </groups> <classes> <class name="test.IndividualMethodsTest"> <methods> <include name="testMethod" /> </methods> </class> </classes> </test>
你也可以再testng.xml中定义新的组,然后用参数设定附加的详细信息,比如执行测试时是否使用多线程、使用多少线程、是否在JUnit测试执行等等。
默认情况,TestNG会按照XML文件中的顺序执行测试。如果你想让类和方法以不可预知的顺序执行,设置preserve-order属性为false
<test name="Regression1" preserve-order="false"> <classes> <class name="test.Test1"> <methods> <include name="m1" /> <include name="m2" /> </methods> </class> <class name="test.Test2" /> </classes> </test>