zoukankan      html  css  js  c++  java
  • TestNG的testng.xml配置概述

    TestNG提供的annotaions用来辅助定义测试类。

    TestNG的testng.xml配置文件用来辅助定义执行什么样的测试,即testng.xml更像是一个测试规划。

    testng.xml配置文件的元数据引用http://testng.org/testng-1.0.dtd,其中定义了testng.xml中的元素、属性和顺序等。

    1.<suite>

    <suite>元素是testng.xml文件的根元素。

    从DTD文件(如下所示)可以看出,<suite>可以包含一个<groups>元素,用以定义全局的组,该组对所有的测试可见。

    <suite>可以包含多个<test>元素,一个<test>就定义了一个测试用例(其中可能包含多个测试方法)。

    示例如下:

    1. <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >  
    2.     
    3. <suite name="Suite1" verbose="1" >  
    4.   <groups>  
    5.     <run>  
    6.        <include name="..." />  
    7.        <exclude name="..." />  
    8.     </run>  
    9.   </groups>  
    10.    
    11.   <test name="Regression1">  
    12.        ...  
    13.   </test>  
    14. </suite>  

    2.<test>

    <test>元素是<suite>的子元素,用以定义一个测试用例。定义测试用例可以通过<classes>或<packages>。

    1). <classes>表示以测试类的方式定义测试用例,粒度较小。示例如下:

    1. <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >  
    2.     
    3. <suite name="Suite1" verbose="1" >  
    4.   <test name="Regression1">  
    5.     <classes>  
    6.       <class name="test.sample.ParameterSample"/>  
    7.       <class name="test.sample.ParameterTest"/>  
    8.     </classes>  
    9.   </test>  
    10. </suite

    2). <packages>表示以测试类所在的包的方式定义测试用例,包中的所有测试类都被涉及,粒度较大。

    1. <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >  
    2.    
    3. <suite name="Suite1" verbose="1" >  
    4.   <test name="Regression1"   >  
    5.     <packages>  
    6.       <package name="test.sample" />  
    7.    </packages>  
    8.  </test>  
    9. </suite

    3). <test>元素中的<groups>元素

    我们知道,<suite>中可以定义一个全局的<groups>。而这里<test>元素中也可以定义一个自己的<groups>,其中定义的组仅对当前所在的测试用例可见。示例如下:

    1. <test name="Regression1">  
    2.   <groups>  
    3.     <run>  
    4.       <exclude name="brokenTests"  />  
    5.       <include name="checkinTests"  />  
    6.     </run>  
    7.   </groups>  
    8.     
    9.   <classes>  
    10.      ...  
    11.   </classes>  
    12. </test

    注意:在testng.xml配置文件中,<suite>中可以定义多个<test>,那么这些<test>的执行顺序默认按照其在<suite>中出现的先后顺序。当然,也可以提供<test>的preserve-order='false'改变默认顺序。

    3. <classes>

    <test>可以通过<classes>或<packages>定义测试用例,但只是在测试类或类包的层次上,那么能不能具体到测试类的某个方法呢?

    1. <test name="Regression1">  
    2.   <classes>  
    3.    
    4.     <class name="test.Test1">  
    5.       <methods>  
    6.         <include name="m1" />  
    7.         <include name="m2" />  
    8.       </methods>  
    9.     </class>  
    10.    
    11.     <class name="test.Test2" />  
    12.    
    13.   </classes>  
    14. </test>  

    对于<classes>中的一个<class>,可以提供<methods>设置测试方法。示例如下:

  • 相关阅读:
    关于SVN出现 svn working copy locked的原因及解决方法
    安装SVN客户端重启电脑之后,右键未出现SVN选项的原因
    Django—工程创建以及models数据库易错点
    tornado之文件上传的几种形式form,伪ajax(iframe)
    python 收录集中实现线程池的方法
    python 多线程,进程的理解
    python之路 序列化 pickle,json
    collections模块方法详解
    python之路 socket,socketsever初探
    SQL- 约束
  • 原文地址:https://www.cnblogs.com/jack1989/p/8134156.html
Copyright © 2011-2022 走看看