TestNg--The next generation of testing

一、TestNg简介

       TestNg是一个测试框架,灵感来自于Junit和NUnit,但是增加了很多新的功能,让他显得要比junit和Nunit更加的强大,这也就是为什么他从一出道就号称是下一代单元测试框架的原因,在本节中,我们通过一个很小的例子,让大家体验一下,什么事testNg,并且进行一下简单的联系

1、TestNg的官方网址,大家可以在上面进行下载

http://testng.org/

如果您是Maven的忠实粉丝,那么可以通过Maven的定位获得你想要的TestNg包

<dependency>
  <groupId>org.testng</groupId>
  <artifactId>testng</artifactId>
  <version>6.1.1</version>
  <scope>test</scope>
</dependency>
2 、TestNG的特性:

2.1 、完全注解

2.2 、你可以运行您的unit test在任意大的线程池中(所有的方法都有属于自己的线程,每一个class都有一个自己的线程等等)

2.3、灵活的测试配置文件

2.4、支持数据驱动测试(@DataProvider

2.5、支持参数

2.6、功能强大的运行模式(不再需要TestSuite)

2.7、支持一系列的工具和插件(eclipse, IDEA, Maven, 等

2.8、嵌入Beanshell脚本语言支持扩展

2.9、默认的JDK函数用于运行时和日志记录(不再依赖于其他第三方)

2.10、依赖于应用服务器的测试方法。

TestNg被设计成覆盖所有类型的测试,包括:单元测试,功能测试,端对端测试,集成测试,等等。

3、开始一个简单的TestNG演示吧(译者注:官网的例子不完整,我将其补充完整)

3.1、Java代码如下所示:

package example;
 
import org.testng.annotations.*;
 
public class SimpleTest {
 
 @BeforeClass
 public void setUp() {
   // code that will be invoked when this test is instantiated
 }
 
 @Test(groups = { "fast" })
 public void aFastTest() {
   System.out.println("Fast test");
 }
 
 @Test(groups = { "slow" })
 public void aSlowTest() {
    System.out.println("Slow test");
 }
 
}
解释:其中setUp方法被@BeforeClass标注,表示该方法在SimpleTest类创建后会首先执行,被@Test注解表示该方法是测试方法,其中groups属性表示该测试方法隶属于哪个组,关于groups属性,在后面的章节中将会介绍。

本例的意图是运行fast分组的test,然后slow将会被忽略掉,一些需要注意的事项:

1、无需继承某个类或者实现某个接口(junit4.x也是可以做到的)

2、每一个测试方法你可以随便起名字,可以被TestNg的标记标识(官方文档,个人觉得是废话)

3、一个测试方法可以属于一个或者多个分组。

3.2、接下来编写一个ANT脚本,进行单元测试的运行。

<?xml version="1.0"?>
<project name="testNg" basedir="." default="test">
	
	<path id="test-path">
		<fileset dir="lib">  
            <include name="**/*.jar" />  
        </fileset>  
		<pathelement location="classes"/>
	</path>
 
	<path id="compile-path">
		<fileset dir="lib">  
            <include name="**/*.jar" />  
        </fileset>
	</path>

 <taskdef name="testng" classpathref="test-path"  classname="org.testng.TestNGAntTask" />
 
  <target name="compile">
		<javac srcdir="src" destdir="classes" failοnerrοr="true">  
            <classpath refid="compile-path">  
            </classpath>  
        </javac>  
  </target>

 <target name="test" depends="compile">
   <testng classpathref="test-path" groups="fast">
     <classfileset dir="classes" includes="example/*.class"/>
   </testng>
 </target>

</project>

3.3、运行Ant脚本,记得要讲testng.jar放到lib下哈,运行结果如下所示:

Buildfile: E:\Execise\testng\chapter1\build.xml

compile:
    [javac] E:\Execise\testng\chapter1\build.xml:20: warning: 'includeantruntime
' was not set, defaulting to build.sysclasspath=last; set to false for repeatabl
e builds

test:
   [testng] [TestNG] Running:
   [testng]   Ant suite
   [testng]
   [testng] Fast test
   [testng]
   [testng] ===============================================
   [testng] Ant suite
   [testng] Total tests run: 1, Failures: 0, Skips: 0
   [testng] ===============================================
   [testng]

BUILD SUCCESSFUL
Total time: 2 seconds

3.4、testng比较强大的一点是,可以自动帮你生成一个测试报告,该报告会在 test-output。


好了,关于第一篇TestNg的文章到此结束,后面的文章会陆续更新关于官网的资料翻译,另外还会翻译一本关于TestNg的电子书,希望大家多多交流!




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值