Textng.xml是TestNG的配置文件,用来定义TestNG中的test suit和test。Textng.xml在test suit中提供了很多不同的选择,包括包,类和依赖测试方法,他也允许我们在一个单一的测试环境中运行多个test,也允许我们在多线程的环境中运行多个test。
1.Textng.xml配置方式:
A.creating a test with classes
执行不同包下的不同的类,Textng.xml脚本如下
<suite name="Class Suite" verbose="1">
<test name="Test">
<classes>
<class name="test.firstpackage.FirstTestClass" />
<class name="test.secondpackage.FirstTestClass" />
<class name="test.thirdpackage.FirstTestClass" />
</classes>
</test>
</suite>
B.creating a test with packages
执行包下的所有类,Textng.xml脚本如下
<suite name="Package Suite" verbose="1">
<test name="Package Test">
<packages>
<package name="test.firstpackage" />
<package name="test.secondpackage" />
</packages>
</test>
</suite>
C.creating a test with methods
执行类下的特定的方法,Textng.xml脚本如下
<suite name="Method Suite" verbose="1">
<test name="Method Test">
<classes>
<class name="test.firstpackage.FirstTestClass">
<methods>
<include name="firstTest" />
</methods>
</class>
</classes>
</test>
</suite>
D.creating a test suite with package, class, and test method
在一个test suit中可以一起执行 package, class, 和test method ,Textng.xml脚本如下
<suite name="Combine Suite" verbose="1">
<test name="Combine Test">
<packages>
<package name="test.firstpackage" />
</packages>
<classes>
<class name="test.secondpackage.FirstTestClass" />
<class name="test.thirdpackage.FirstTestClass">
<methods>
<include name="firstTest" />
</methods>
</class>
</classes>
</test>
</suite>
E.test suite to include a particular package
执行某个包名包含某个关键词的包,Textng.xml脚本如下
<suite name="Include Package Suite" verbose="1">
<test name="Include Package Test">
<packages>
<package name="test.*">
<include name="test.secondpackage" />
</package>
</packages>
</test>
</suite>
F.test suite to exclude a particular package
排除某个包,Textng.xml脚本如下
<suite name="Exclude Package Suite" verbose="1">
<test name="Exclude Package Test">
<packages>
<package name="test.*">
<exclude name="test.secondpackage" />
</package>
</packages>
</test>
</suite>
G.test suite to exclude a particular method
排除某个特定的方法,Textng.xml脚本如下
<suite name="Exclude Method Suite" verbose="1">
<test name="Exclude Method Test">
<classes>
<class name="test.firstpackage.FirstTestClass">
<methods>
<exclude name="firstTest" />
</methods>
</class>
</classes>
</test>
</suite>
H.using regular expressions for test
使用正则表达式来描述执行的方法,Textng.xml脚本如下
<suite name="Regular Exp Suite" verbose="1">
<test name="Regular Exp Test">
<classes>
<class name="test.regularexppackage.RegularExpClass">
<methods>
<include name=".*Test.*" />
</methods>
</class>
</classes>
</test>
</suite>
2.suite标签中的属性
A.使用 parallel 属性来让测试方法运行在不同的线程中。这个属性可以带有如下这样的值:
<suite name="My suite" parallel="methods" thread-count="5">
<suite name="My suite" parallel="tests" thread-count="5">
<suite name="My suite" parallel="classes" thread-count="5">
<suite name="My suite" parallel="instances" thread-count="5">
parallel="methods": TestNG 会在不同的线程中运行测试方法,除非那些互相依赖的方法。那些相互依赖的方法会运行在同一个线程中,并且遵照其执行顺序。
parallel="tests": TestNG 会在相同的线程中运行相同的<test>标记下的所有方法,但是每个<test>标签中的所有方法会运行在不同的线程中。这样就允许你把所有非线程安全的类分组到同一个<test>标签下,并且使其可以利用TestNG多线程的特性的同时,让这些类运行在相同的线程中。
parallel="classes": TestNG 会在相同线程中相同类中的运行所有的方法,但是每个类都会用不同的线程运行。
parallel="instances": TestNG会在相同线程中相同实例中运行所有的方法,但是两个不同的实例将运行在不同的线程中。
thread-count:允许你为当前的执行指定可以运行的线程数量。
网友评论