3 - testng.xml

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>

 

posted @ 2015-07-09 14:48  测开刘小洋  阅读(131)  评论(0编辑  收藏  举报