一、 概论
        TestNG,即Testing, NextGeneration,下一代测试技术,是一套根据JUnit 和NUnit思想而构建的利用注释来强化测试功能的一个测试框架,即可以用来做单元测试,也可以用来做集成测试。
        因为TestNG是从Junit的思想构建而来,所以TestNG具备junit等所不具备的多重功能。而且TestNG目前的使用比较广泛,google的一个selenium自动化项目组即采用的是selenium rc的java 接口+ testNG结合的方式。
        写一个测试通常分为三步:
1.编写测试业务逻辑,并且在你的代码中插入 TestNG annotations 。
2.在 testng.xml 或 build.xml 添加你的测试信息。例如类名,希望运行的组等等
3.运行TestNG.
 
文档中会使用到如下的概念:
1.一套测试(suite)由一个XML文件所表示。它能够包含一个或者多个测试,<suite> 标记来定义。
2.test由<test>标记来表示一个测试,并且可以包含一个或者多个TestNG类。
3.TestNG 类是包含至少一个TestNG annotation的java类,由<class>标签描述并包含一个或多个测试方法。
4.测试方法,就是一个普通的Java方法,在由@Test标记。
 
testNG.xml
testNG的运行需要一个配置文件,默认为testng.xml,其描述了要运行哪些测试等配置。
编写testNG.xml如果没有书写提示,给在头部引入
<!DOCTYPE suite PUBLIC "--//beust.com//testng//testng 1.0//EN" "http://beust.com/testng/testng-1.0.dtd" >就会有提示了
 
注意:TestNG使用的是 正则表达式,而不是通配符。注意这二者的区别
例如:"anything" 是匹配于 ".*" -- 点和星号 -- 而不是星号 "*"
Groups
testNG可以将各个method存放在不同的group里面,然后运行的时候可以指定要运行的group。Group指定的方式如下:
  1. @Test(groups = {"fast", "unit", "database" })
  2. public voidrowShouldBeInserted() {}
二、实例
1.创建测试类Sum

2.创建TestNG类
  1. package com.testNg;
  2. import org.testng.annotations.Test;
  3. import static org.testng.Assert.assertEquals;
  4. import com.hpp.Sum;
  5. public class NewTest {
  6. private Sum newSum = new Sum();
  7. @Test(groups = { "t1", "t2" })
  8. public void f() {
  9. int mysum = newSum.add(1, 2);
  10. assertEquals(3, mysum, "Right");
  11. }
  12. @Test(groups = { "t2" })
  13. public void f2() {
  14. int mysum = newSum.add(2, 2);
  15. assertEquals(3, mysum, "Right");// 错误的用例
  16. }
  17. @Test(groups = { "t1" })
  18. public void f3() {
  19. int mysum = newSum.add(1, 2);
  20. assertEquals(3, mysum, "Right");
  21. }
  22. }
3.修改testNG.xml
 
  1. <?xml version="1.0"encoding="UTF-8"?>
  2. <suite name="Suite" parallel="false">
  3. <testnametestname = Test ">
  4. <groups>
  5. <run>
  6. <includenameincludename = t1 " />
  7. </run>
  8. </groups>
  9. <classes>
  10. <classnameclassname = com.testNg.NewTest " />
  11. </classes>
  12. </test><!-- Test -->
  13. </suite> <!--Suite -->
当运行t1测试组时,就仅仅运行f()和f3()方法
运行结果
 

修改testNG.xml运行t2测试组,其中f2()方法故意留个错误,我们看下出现bug的情况
 
 
本文转载自:http://blog.sina.com.cn/bestfeiyong

TestNG 一、 概论的更多相关文章

  1. 单元测试——测试神器,testng

    为什么用它 建议使用 TestNG 作为 Java 项目的主要单元测试框架,因为 TestNG 在参数化测试.依赖测试以及套件测试(组)方面功能更加强大.TestNG 意味着高级的测试和复杂的集成测试 ...

  2. Atitit.研发团队与公司绩效管理的原理概论的attilax总结

    Atitit.研发团队与公司绩效管理的原理概论的attilax总结 1. 四个理念 1 1.1. 绩效管理的三个目的.四个环节.五个关键2 1.2. 绩效目标smart2 2. 考核对象2 3. 绩效 ...

  3. Atitit.软件研发团队建设原理与概论 理论

    Atitit.软件研发团队建设原理与概论 理论 培训 团队文化建设(内刊,ppt,书籍,杂志等) 梯队建设 技术储备人才的问题 团队建设--小红花评比. 团队建设--文化墙.doc 户外拓展 1. 团 ...

  4. Atitit 输入法原理与概论ati use

    Atitit 输入法原理与概论ati use 1.1. 输入法技术点1 1.2. 参考多多输入法设置2 1.3. Attilax博客集合知识点2 1.4. 输入法的书籍当当几乎没有..都是打字的.2 ...

  5. atitit.http原理与概论attilax总结

    atitit.http原理与概论attilax总结 1. 图解HTTP 作者:[日]上野宣 著1 2. HTTP权威指南(国内首本HTTP及其相关核心Web技术权威著作)1 3. TCP/IP详解(中 ...

  6. Atitit.软件架构高扩展性and兼容性原理与概论实践attilax总结

    Atitit.软件架构高扩展性and兼容性原理与概论实践attilax总结 1. 什么是可扩展的应用程序?1 2. 松耦合(ioc)2 3. 接口的思考 2 4. 单一用途&模块化,小粒度化2 ...

  7. Atitit.可视化与报表原理与概论

    Atitit.可视化与报表原理与概论 1.  信息可视化1 2. Gui可视化1 3. 报表系统(三大图表,金字塔,组织结构图等)1 4. <可视化数据>目录3 5. 可视化的具体实现(c ...

  8. Atitit 游戏的原理与概论attilax总结

    Atitit 游戏的原理与概论attilax总结 1. 游戏历史2 1.1.1. 盘点PC游戏史上最重要的50款游戏2 1.1.2. 回味人类文明进程 五款经典的历史游戏2 2. 游戏类型(主要分为6 ...

  9. Atitit 软件国际化原理与概论

    Atitit 软件国际化原理与概论 语言和文化习俗因地域不同而差别很大.对某一特定的地域的 语言环境称为"locale".它不仅包括语言和货币单位,而且还包括 数字标示格式, 日期 ...

随机推荐

  1. CentOS按电源键关机

    chkconfig --list查看没有acpid服务.安装之后解决yum install acpid -y 安装后需要重启,不然会提示:* Starting acpid ...acpid: can' ...

  2. 【剑指offer】面试题 11. 旋转数组的最小数字

    面试题 11. 旋转数组的最小数字 题目描述 题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4, ...

  3. CF1027C Minimum Value Rectangle【贪心/公式化简】

    https://www.luogu.org/problemnew/show/CF1027C #include<cstdio> #include<string> #include ...

  4. 大数据技术之_11_HBase学习_02_HBase API 操作 + HBase 与 Hive 集成 + HBase 优化

    第6章 HBase API 操作6.1 环境准备6.2 HBase API6.2.1 判断表是否存在6.2.2 抽取获取 Configuration.Connection.Admin 对象的方法以及关 ...

  5. 差分【bzoj3043】IncDec Sequence

    Description 给定一个长度为n的数列{a1,a2...an},每次可以选择一个区间[l,r],使这个区间内的数都加一或者都减一. 问至少需要多少次操作才能使数列中的所有数都一样,并求出在保证 ...

  6. Linux命令之telnet

    telnet [-8EFKLacdfrx] [-X authtype] [-b hostalias] [-e escapechar] [-k realm] [-l user] [-n tracefil ...

  7. ANY和SOME 运算符

    在SQL中ANY和SOME是同义词,所以下面介绍的时候只使用ANY,SOME的用法和功能和ANY一模一样.和IN运算符不同,ANY必须和其他的比较运算符共同使用,而且必须将比较运算符放在ANY 关键字 ...

  8. nyoj 300 (矩阵快速幂)Kiki & Little Kiki 2

    描述 There are n lights in a circle numbered from 1 to n. The left of light 1 is light n, and the left ...

  9. 【BZOJ 2124】【CodeVS 1283】等差子序列

    http://www.lydsy.com/JudgeOnline/problem.php?id=2124 http://codevs.cn/problem/1283/ 重点是把判断是否存在3个数组成等 ...

  10. [BZOJ3990][SDOI2015]排序(DFS)

    3990: [SDOI2015]排序 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 902  Solved: 463[Submit][Status][ ...