- 浏览: 898293 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (537)
- Java SE (114)
- Struts (18)
- Hibernate (25)
- Spring (3)
- Page_Tech (41)
- Others (87)
- Database (29)
- Server (24)
- OpenSource_Tools (15)
- IDE_Tool (22)
- Algorithm (28)
- Interview (22)
- Test (28)
- Hardware (1)
- Mainframe (25)
- Web application (4)
- Linux (3)
- PHP (17)
- Android (1)
- Perl (6)
- ubuntu (1)
- Java EE (9)
- Web Analysis (5)
- Node.js (2)
- javascript (2)
最新评论
-
一键注册:
request.getRequestURL()和request.getRequestURI() -
SuperCustomer:
...
SED的暂存空间和模式空间 -
juyo_ch:
讲得挺好理解的,学习了
java 死锁及解决 -
chinaalex:
最后一题答案正确,但是分析有误.按照如下过程,上一行为瓶,下一 ...
zz智力题 -
liaowuxukong:
多谢博主啦,弱弱的了解了一点。
C++/Java 实现多态的方法(C++)
在软件开发过程中,我们通常需要对各个功能模块以至类的方法进行详细的测试。这种对最小的软件单元进行验证的工作也叫做单元测试,单元测试通常在编码过程中进行,在以测试驱动开发的项目中,单元测试是一项非常重要的工作,但随着开发过程的深入,我们所积累的单元测试案例就会越来越多,面对成百上千个测试类,单独运行每个案例不仅费时,而且很难在以后的集成测试中利用先前的单元测试案例构建出一个完整的测试报告。
Junit是一个用于java软件测试的开源项目,主要的应用也是作为单元测试,虽然设计短小,但功能却是非常强大。目前有很多在junit上进行扩展的项目帮助我们完成各种测试。比如web性能测试的httpunit,jmeter,用于代码覆盖测试的hansel,用于数据库性能测试的dbunit等等,应用遍布软件测试的各个领域。
Ant同样是一个非常优秀的java项目构建工具。据ant的创始人James Duncan Davidson说,ant代表:"Another Neat Tool"。同样的,ant在英文中是“蚂蚁“的意思,这又代表着它有建筑本领高超和身躯虽小,但功能却极其强大的意思(可以参看:http://ant.apache.org/faq.html#ant-name),ant项目从2000年开始,一直未停止更新工作,目前的最高版本是1.7.0。
在下面我们还需要用到java的IDE开发工具Eclipse。在最新的3.2版本中,eclipse已经整合了junit4、junit3.8.1和ant1.6.5。但由于只有在ant1.7.0以后版本中才开始支持junit,因此需要我们从http://ant.apache.org下载最新的1.7.0,并重新设置eclipse的Ant Home的位置指向ant1.7.0的lib包。如图:
Eclipse里面已经自带了junit4和junit3.8.1,如果使用的jdk环境是5.0(jdk1.5)可以使用junit4,如果是1.4则使用junit3.8.1。查看和设置项目的jdk环境可以通过project ->properties ->java compiler.如图:
默认情况下,"Enable project specific settings" 选项是未选中的,则项目使用当前操作系统默认的java环境(跟你设置的java build path无关)。
下面,我们创建一个测试项目,名字为:test,并创建两个源文件夹:src和test..把项目源文件和测试文件分开放在这两个文件夹中。
我们在src编写一个测试类:
package com.widetrust;
public class CountService {
private int summary;
private int count;
public boolean stat(int visitor){
count++;
summary += visitor;
if(summary>1000 && count>2){
return true;
}else{
return false;
}
}
}
|
在test文件夹写个测试该类的类:
package com.widetrust.test;
import com.widetrust.CountService;
import junit.framework.TestCase;
public class TestCountService extends TestCase {
CountService cs;
protected void setUp() throws Exception {
cs = new CountService();
}
protected void tearDown() throws Exception {
}
public void testStat(){
assertEquals(true, cs.stat(4000));
}
public void testStat2(){
cs.stat(2000);
cs.stat(2000);
assertEquals(true, cs.stat(3000));
}
}
|
当然我们可以利用eclipse的Run As Junit Test(快捷键:Alt+Shift+X T)运行我们刚写好的测试案例,但有个问题是eclipse不能正确的同步我们的开发和测试程序,而且,我们可能还希望测试的过程中为我们提供一份详细的报告文档,以供我们在测试后的改进过程中的讨论。现在我们使用ant的自动编译功能来实现测试的自动化,并让它生成一份详细的测试报告。
注意的是,ant自带了junit的支持包,但项目需要junit.jar,还需要在项目的lib文件夹中放置junit.jar,(这里我假设工程目录存放项目依赖组件的是lib文件夹)如果我们要单独使用ant编译整个项目,需要在项目构建文件build.xml中定义编译所用到的lib包。当然,为了省事,我们也可以把项目依赖的lib包放到ant的设置项Global Entries 中,如图:
这里我们把项目依赖包都设置在build.xml中:
在项目的根目录创建一个build.xml,内容如下:
<?xml version="1.0"?>
<project name="ant and junit" default="test auot junit and report" basedir=".">
<!-- 定义工程依赖的jar包存放的位置 -->
<property name="lib.dir" value="lib"/>
<path id="classpath">
<fileset dir="${lib.dir}" includes="**/*.jar"/>
</path>
<property name="output folder" value="classes"/>
<property name="src folder" value="src"/>
<property name="test folder" value="test"/>
<property name="report folder" value="report"/>
<target name="clean">
<delete dir="report"/>
<echo>清除测试报告文件 成功!</echo>
</target>
<target name="compile init">
<mkdir dir="${output folder}"/>
<echo>创建编译文件夹 成功!</echo>
</target>
<target name="report init"depends="clean">
<mkdir dir="${report folder}"/>
<echo>创建测试报告文件夹 成功!</echo>
</target>
<target name="compile"depends="compile init">
<javac srcdir="${src folder}" destdir="${output folder}" classpathref="classpath"/>
<echo>项目源文件编译 成功!</echo>
</target>
<target name="test compile" depends="report init">
<javac srcdir="${test folder}" destdir="${output folder}" classpathref="classpath"/>
<echo>项目测试文件编译 成功!</echo>
</target>
<target name="all compile" depends="compile, test compile">
</target>
<target name="test auot junit and report" depends="all compile">
<junit printsummary="on" fork="true" showoutput="true">
<classpath>
<fileset dir="${lib.dir}"includes="**/*.jar"/>
<pathelement path="${output folder}"/>
</classpath>
<formatter type="xml"/>
<batchtest todir="${report folder}">
<fileset dir="${output folder}">
<include name="**/Test*.*"/>
</fileset>
</batchtest>
</junit>
<junitreport todir="${report folder}">
<fileset dir="${report folder}">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="${report folder}"/>
</junitreport>
</target>
</project>
|
我们在eclipse中利用windows -> show View -> Ant 打开ant工作窗口,点击”Add Buildfiles” 将项目的根目录下的build.xml添加进去,然后在ant工作窗口点运行图标,可以看到控制台上的输出:(当然,用命令行方式运行也可以)
整个项目编译成功,并在项目根目录生成一个report文件夹,我们可以从中看到一份详细的测试报告:
我们可能会希望junit 和ant为我们提供中文的测试报告,很遗憾的是,ant并没有给我们提供这个选项,还好,ant可以让我们通过定义styledir属性,更改报告文件的输出样式的配置文件:我们要做的,就是汉化在ant安装文件夹中的junit-frames.xsl和junit-noframes.xsl,(也可以从http://download.csdn.net/user/lemonfamily 下载到该文件)甚至可以在里面定义一些我们需要的东西。
<junitreporttodir="${report folder}">
<filesetdir="${report folder}">
<includename="TEST-*.xml"/>
</fileset>
<reportformat="frames"todir="${report folder}"styledir="junitreport"/>
</junitreport>
|
这是更改后的效果:
现在我们已经可以做到测试代码和开发代码分开,并利用ant的自动编译功能为我们执行测试计划和生成测试报告。虽然在编写测试案例的时候确实比较麻烦,我们需要详细的模拟实际应用中的环境,并寻找可能出现错误的边界值帮助我们在编写实际代码时尽量减少隐患的发生,往往编写测试案例的时间比我们编写实际代码的时间还长,但这样做是非常值得的,一个软件的开发周期最长的60%都是花在寻找错误和完善的过程中。
发表评论
-
Bugzilla 中文手册
2012-08-21 10:22 18898Bugzilla 是一个开源的缺陷跟踪系统(Bug ... -
(zz) Web Service 测试方法
2012-07-12 17:29 16781.WebService简介 WebService ... -
测试Servlet(转)
2012-06-10 18:31 949servlet的测试一般来说需 ... -
Rational Functional 测试命令接口
2012-05-17 13:26 865Functional Test Command-Line ... -
【原】JUNIT 源码分析之TestSuite
2012-04-25 21:59 1484Junit是如何使用适配器模式的呢?概念上可以理解,但 ... -
分享selenium+testng+reprotng+ant配置
2012-04-19 16:12 3506一、Configure1. 安装testNG插件到eclips ... -
[YUAN] JUNIT 源码分析总结
2012-04-11 15:21 984今天看了下Junit3的源码,记录下一些心得。 J ... -
关键字驱动测试的原理和概念
2012-04-09 13:45 1680原理及特点 1. ... -
LoadRunner安装及破解
2012-03-19 15:13 10491、去HP的官方网 ... -
Web测试的一些思路
2012-03-19 15:10 814WEB测试分为6个部分: ●功能测试 ● ... -
测中策 - Web自动化测试的策略
2012-03-13 17:01 902大不可量,深不可测&quo ... -
软件测试的思路
2012-02-26 21:08 843任何东西的测试与软 ... -
TC interview
2012-02-21 11:34 9781. 自我介绍 2. 工作内容,完成过的具体项目及职责 3 ... -
RFT中文操作指南(下)
2011-04-02 15:05 1287练习 1.6:回归测试 在 ... -
RFT中文操作指南(上)
2011-04-02 15:03 1014练习 1.1:设置 Functional Test IB ... -
理解自动化测试
2011-04-02 11:06 1637“自动化测试”有时也叫“测试自动化”,由两部分组成,“自动化” ... -
一个纸杯子的测试用例
2010-10-26 11:52 1173一个纸杯,我们能想出多少个测试用例呢?想必很多人 ... -
测试一个搜索框
2010-10-26 11:51 1580摸索中,还很不成熟,但愿能抛砖引玉吧,我做的搜索测试是来抓取百 ... -
测试用例编写的“侯式标准”
2010-10-26 11:51 1441作为软件测试人员 ... -
编写测试用例方法心得体会
2010-10-26 11:47 1341在我的个人邮箱和MSN上,通常同行都问我类似下面这样的问题: ...
相关推荐
Ant+Junit+Svn实现自动单元测试
ant+junit的简易教程
eclipse下利用ant、junit进行自动化测试例子源码
selenium+junit+hudson自动化测试初探
Junit+ant+cobertura示例源码程序。
没有什么好说的,这是我配置的过程,拿出来大家分享,希望对您的工作有帮助
hibernate+spring +ant+junit 1.整合hibernate+spring 2.ant自动生成xml文件和api 3.junit测试hql语句 4.c标签写的前台分页程序
Ant+JUnit测试报告实际例子 资源分6分,希望物有所值而不是“无有所值”。
NULL 博文链接:https://blue2031.iteye.com/blog/1145484
ant+junit程序小实例(绝对可以运行)
JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage,包含依赖包:junit-jupiter-5.5.1.jar,junit-jupiter-engine-5.5.1.jar,junit-jupiter-params-5.5.1.jar,junit-platform-launcher-1.5.1.jar,junit-...
配置junit用ant配置运行,里面介绍了如果配置,如果运行
hibernate+spring+junit+ant+mysql 小实例。能够当模板
1.seleRrj是工程包,包含简单的自动化测试demo以及jar包,已经加入junit4支持;调试运行通过; 2.selenium-fireFox插件,安装在火狐浏览器里面 用于录制自动化脚本和学习自动化测试; 3.我用的火狐版本是v21.0版本,...
终极自动化测试环境搭建:Selenium+Eclipse+Junit+TestNG+Python
junit + ant 自动化测试,是个demo版本,大家可以扩充
NULL 博文链接:https://majm.iteye.com/blog/509634
本实例主要展示了在myEclipse或Eclipse中如何集成Ant、Junit和EMMA技术,有三个文件夹,在导入myEclipse或Eclipse中时,要Link Source,把三个都选上。详细地讲解了ant的构建文件build.xml
内容概要:参考Mockito官方API文档,实践框架每个特性。 适合人群:Mockito入门人员以及想全面...能学到什么:“Mockito 4.6.0 + Junit 5”的组合编程。 使用建议:使用前安装好Maven及Java即可,推荐使用VSCode编辑。
ant1.8.2+junit4.8.1 自动编译,自动测试,自动生成测试报告 只要把你下载的zip包解压,cmd到对应目录下,直接ant命令就可以。当然前提是你要配置好ANT_HOME, 并把ant命令加到Path中。 zip包中,有build文件夹,有...