ant接口自动化 junit_ant 学习(3)--结合junit形成自动化测试小框架

本文介绍了如何使用Ant构建工具与JUnit测试框架相结合,进行Java软件的自动化测试。详细步骤包括设置目录结构、引入JUnit库、编写测试类、配置build.xml和build.properties文件,以及生成和查看测试报告。通过Ant的junit和junitreport任务,可以收集测试结果并生成XML和HTML格式的报告。此外,还讲解了如何通过命令行参数选择性地运行单个测试用例。
摘要由CSDN通过智能技术生成

ant 结合junit 进行软件自动测试

1> 用ant 结合junit 启动基本编译和测试的自动过程如下:

执行 JUnit 测试

捕获测试结果,将结果记录到 XML 文件或其它格式的文件

将结果转化为基于 XSL 格式的测试报告

将这个报告转化为 HTML 格式

用电子邮件发送报告 -----这个好像没有实现哦,后面再学习补充

一旦捕获结果,就可以使用 XML 格式化器将每个测试套件运行的故障和错误数,连

同软件包和类名还有测试套件的执行时间一起引入。对于每个测试套件,都有以下信息被

捕获:

测试案例的名称

执行的持续时间

故障或错误的类型(如果适用)

任何故障或错误的详细信息

2> 本次实例的目录结构:

C:\car 主目录

\src 源程序目录

\classes 编译后的class 文件目录

\etc 其他

\xsl XSL 文件目录

首先在 C盘创建car 目录、src 子目录和etc 子目录,并从%ANT_HOME%\etc 下拷贝junit-noframes.xsl 文件至C:\car\etc\xsl 子目录下。

3> 从http://download.sourceforge.net/junit/junit3.8.zip下载,解压至C盘,将其目录下的junit.jar 文件拷贝至%ANT_HOME%\lib 目录下。

(说明:这里不一定要是3.8的版本,我想应该高于这个版本的junit的jar包就行)

4> 在src 子目录下新建Car.java 以及testCar.java 文件。

Car.java

public class Car

{

public int getWheels()

{

return 3;

}

}

testCar.java

import junit.framework.*;

public class testCar extends TestCase

{

protected int expectedWheels;

protected Car myCar;

public testCar(String name)

{

super(name);

}

protected void setUp()

{

expectedWheels = 3;

myCar = new Car();

}

public static Test suite()

{

return new TestSuite(testCar.class);

}

public void testGetWheels()

{

assertEquals(expectedWheels, myCar.getWheels());

}

}

5> 在C:/car目录下创建build.xml 和build.properties 文件。

build.xml

build.properties

src.dir=src

build.dir=classes

xsl.dir=etc/xsl

report.dir=report

6》运行ant junit

2689493402471550354.jpg

3047811047824779236.jpg

打开junit-noframes.html 测试报告  (显然报告显示期望结果是4,而得到的结果是3,所以测试失败。可以修改Car.java 的结果,改3为4,则可以测试成功)

1554586296374170614.jpg

这里生成junit-noframes.html 是因为我们在junitreport中这么设置的 

即无框架显示

如果我们改为 让其有框架显示,则要求先从%ANT_HOME%\etc 下拷贝junit-frames.xsl 文件至C:\car\etc\xsl 子目录下。即换一个有框架的模板

然后运行ant junit,其测试报告就变为了

724516590055037787.jpg

----------------------------

进一步学习,解释以上的内容

在build.xml 中运行了junit,junitreport。 这个两个都是ant的task,在ant官方网站上有解释但不是很明白,以下是在网络中查到的解释,我估计如果利用junitreport 具有以上知识就够用了吧:),其实以下算是对上面junit ,junitreport的解释吧

一、Junit任务基本概念:

junit是ant的基本任务之一。这个任务运行一个或多个JUNIT测试,并收集以一种或多种格式显示结果。下面是几个junit任务的属性

1、haltonfailure,printsummary分别表示如果测试失败是否中止,是否打印基本信息。

2、fommatter--收集结果数据,一个或多个formatter可以直接在junit,test,或者batchtest下面嵌套使用。有以下三种formatter:

brief:以文本格式提供测试失败的详细内容。

plain:以文本格式提供测试失败的详细内容以及每个测试的运行统计

xml:以xml格式提供扩展的详细内容,包括正在测试时ant的特性,系统输出,以及每个测试用例的系统错误。

将会在data目录下为所有的测试用例都创建一个xml文件。

3、test

运行单独的测试用例

4、batchtest,同时运行多个测试用例

测试的输出结果将放到todir。而dir中所有的测试用例都将运行。

xml formatter的默认命名规范为Test-*.xml.

5、syspropertyset,运行junit test的时候,可以指定syspropertyset,这样在Test*.java文件中可以通过System.getProperty();来获取在构建文件中定义的property的值。例子:

...

6、sysproperty,也可以在junit中定义sysproperty,所定义的property的用法和上面的syspropertyset中的property的用法是一样的。

7、fork="true",让junit运行在独立的jvm中。

二、junitreport任务

可以采用junitreport任务生成html的报告。junitreport任务首先将生成的xml文件整合成一个xml文件,一般命名为TESTS-TestSuites.xml.然后再对xml文件进行转换。其格式如下:

在上面这个例子里,junitreport任务将整合test.data.dir下面的Test-*.xml文件,并且生成html文件框架.

report表示生成有框架或无框架的javadoc。

三、如何只运行单个测试。

对test和batchtest使用if/unless来实现选择性的运行单个测试或者运行整个测试。

if表示只要testcase 这个property存在则会执行test,unless表示将会执行batchset,除非testcase这个property存在。因此如果想要运行单个测试,只需要在命令行中-Dtestcase=...即可。否则将会运行所有的testcases。

本文转自 326647452 51CTO博客,原文链接:http://blog.51cto.com/svsky/2074009,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值