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. <suite name="Suite1" verbose="1" >
  3. <groups>
  4. <run>
  5. <include name="..." />
  6. <exclude name="..." />
  7. </run>
  8. </groups>
  9. <test name="Regression1">
  10. ...
  11. </test>
  12. </suite>

2.<test>

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

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

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

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

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

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

3. <classes>

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

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

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

TestNG的testng.xml配置概述的更多相关文章

  1. testng.xml 配置大全

    1.TestNG的运行方式如下: 1 With a testng.xml file 直接run as test suite 2 With ant 使用ant 3 From the command li ...

  2. MyEclipse TestNG插件安装与配置

    MyEclipse TestNG插件安装与配置   by:授客 QQ:1033553122 测试环境 jdk1.8.0_121 myeclipse-10.0-offline-installer-win ...

  3. IDEA运行TestNG报错rg.testng.TestNGException: org.xml.sax.SAXParseException;

    从eclipse复制的依赖注解,一运行测试脚本发现报错如下: "F:\Program Files\Java\jdk1.7.0_17\bin\java" -ea -Didea.lau ...

  4. Bean的基于XML配置方式

    基于XML配置 Beans.xml <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns= ...

  5. 基于@AspectJ注解配置切面与基于XML配置切面

    1. Waiter目标类 package com.smart.aop.advice.pointcut; public class Waiter { public void greetTo(String ...

  6. XML配置spring session jdbc实现session共享

    概述 session的基础知识就不再多说. 通常,我们会把一个项目部署到多个tomcat上,通过nginx进行负载均衡,提高系统的并发性.此时,就会存在一个问题.假如用户第一次访问tomcat1,并登 ...

  7. 【eclipse插件开发实战】Eclipse插件开发4——插件JDE、PDE开发方式及plugin.xml配置文件结构

    Eclipse插件开发4--插件JDE.PDE开发方式及plugin.xml配置文件结构 开发方式分为:java开发环境JDE开发插件的方式和插件开发环境PDE开发插件方式. 插件通过添加到预定义的扩 ...

  8. Spring之AOP原理、代码、使用详解(XML配置方式)

    Spring 的两大核心,一是IOC,另一个是AOP,本博客从原理.AOP代码以及AOP使用三个方向来讲AOP.先给出一张AOP相关的结构图,可以放大查看. 一.Spring AOP 接口设计 1.P ...

  9. 【TestNG】TestNG使用教程详解

    一.TestNG介绍TestNG是Java中的一个测试框架, 类似于JUnit 和NUnit, 功能都差不多, 只是功能更加强大,使用也更方便.详细使用说明请参考官方链接:https://testng ...

随机推荐

  1. Luogu 1081 [NOIP2012] 开车旅行

    感谢$LOJ$的数据让我调掉此题. 这道题的难点真的是预处理啊…… 首先我们预处理出小$A$和小$B$在每一个城市的时候会走向哪一个城市$ga_i$和$gb_i$,我们有链表和平衡树可以解决这个问题( ...

  2. python-ASCII与Unicode

    # Auther: Aaron Fan'''ASCII:不支持中文,1个英文占1个字节Unicode(万国码,支持所有国家的文字显示):支持中文,但是每个英文和中文都占2个字节UTF-8(是一种针对U ...

  3. Python程序设计5——函数

    本章介绍Python中模块和函数的概念. Python程序是由包.模块和函数三者组成,包是由一系列模块组成的集合,模块是处理某一类问题的函数和类的集合.Python提供的许多工具包和模块安装在Pyth ...

  4. WordCount测试小程序的实现

    一.GitHub地址: https://github.com/245553473/WordCount 二.PSP表格: PSP PSP阶段 预估耗时(分钟) 实际耗时(分钟) Planning 计划 ...

  5. ListBox 光标如何定位在最后一行 显示

    richTextBox_show.SelectionStart = richTextBox_show.Text.Length - 1; richTextBox_show.Focus();

  6. 理解CNN中的通道 channel

    在深度学习的算法学习中,都会提到 channels 这个概念.在一般的深度学习框架的 conv2d 中,如 tensorflow .mxnet ,channels 都是必填的一个参数. channel ...

  7. kolla-build镜像时,问题汇总

    记录下kolla-build镜像时,遇到的一些问题,既为了方便自己以后问题的查找,也为了帮助别人避免踩这些坑.遇到的问题会持续更新在博客里面. 问题1:使用的kolla 版本是ocata版本,本地已经 ...

  8. ECS简介

    https://www.cnblogs.com/yangrouchuan/p/7436533.html Unity下的ECS框架 Entitas简介   最近随着守望先锋制作组在gdc上发布的一个关于 ...

  9. loj #2006. 「SCOI2015」小凸玩矩阵

    #2006. 「SCOI2015」小凸玩矩阵   题目描述 小凸和小方是好朋友,小方给小凸一个 N×M N \times MN×M(N≤M N \leq MN≤M)的矩阵 A AA,要求小凸从其中选出 ...

  10. Linux配置国内的Yum源

    因为Linux默认的yum源是国外的源,所以会有卡顿,缓慢的情况.而国内的Yum源相对速度较快,现在也比较成熟,所以给Linux更换国内Yum源是一个很好的选择. 1.  备份(备份之前需要yum i ...