• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

java单元测试篇:使用clover为java代码的junit测试做覆盖率分析

发布: 2009-3-31 10:13 | 作者: 不详 | 来源: 测试时代采编 | 查看: 561次 | 进入软件测试论坛讨论

领测软件测试网 本人最近在研究java单元测试技术,有点心得,这里分享给测试同行朋友!那么,今天我们研究的主题是使用cenqua公司的clover框架来分析java程序的单元测试覆盖率!关于clover的更多信息呢,请大家去http://www.cenqua.com/clover去查询。我们这里,将会通过一个实例来演示如何使用junit和clover一起,来分析java代码的覆盖率。我们将会使用ant来编译一个junit单元测试实例项目,然后修改build.xml文件,加上clover的覆盖率分析任务target;而且我们还要通过三部分来学习clover超级无敌的地方:current报告、历史报告以及高级特征!

那么最开始呢,我们要做的就是从http://www.cenqua.com/clover下载clover程序包clover.jar(它是clover的主要包)、clover.license(clover的试用license,需要到官方网站下载一个月的试用注册文件,否则不能使用clover!)、velocity.jar(用来创建html报告的扩展包),将它们拷贝到ant(ant你已经安装好了,并且设置了junit.jar以及ANT_HOME之类的初始化工作;我们这里不讲ant的基本使用,它都流行这么多年了,这里假设你都懂啦!)的lib目录下,这样下来,我们在ant的build.xml文件里才可以使用clover任务!

当然,现在很多朋友不喜欢配置一些环境变量,想把这些jar文件放在任意的地方,例如直接放在项目文件里,那么可以通过在build.xml文件里指定这些扩展包的位置也是可以的;如果在build文件里加入扩展包的路径,需要在build文件里这样写:

1)我们把下载来的clover.jar和cenquatasks.jar拷贝到你的项目目录的lib路径下

2)在build.xml下添加如下代码:

<taskdef resource="com/cenqua/ant/antlib.xml" classpath="lib/cenquatasks.jar"/><extendclasspath path="lib/clover.jar"/><taskdef resource="clovertasks" classpath="lib/clover.jar"/>

之后你就可以在ant任务里构建clover的任务啦!

其实最简单的办法呢,就是把clover.jar、clover.license、velocity.jar、cenquatasks.jar、junit.jar这些包都拷贝到ant的lib目录里,省得麻烦,不然将来你加入什么新功能,就会提示你找不到相应的包,你还得去网上搜,特不爽!

我们的学习过程是:

1)先使用junit创建完java代码的测试代码,之后编译运行,完成junit对java代码的单元测试;

2)之后,我们在ant里构建测试任务,自动完成企业集的单元测试工作

3)然后,我们修改build文件,加入clover任务,来完整对单元测试过程的覆盖率分析工作

4)之后开始重构代码,提高代码的单元测试覆盖率

一、构建java源代码与junit单元测试代码

先在你的电脑里的某个比较顺眼的盘下建立一个目录,例如叫sincky,这个就是我们的学习项目目录,再在sincky里创建一个src文件夹,用来放置所有的代码;之后在src里新建一个java类的源文件,名字叫做IMoney.java,代码内容如下:

public interface IMoney {

/**

* Adds a money to this money.

*/

public abstract IMoney add(IMoney m);

/**

* Adds a simple Money to this money. This is a helper method for

* implementing double dispatch

*/

public abstract IMoney addMoney(Money m);

/**

* Adds a MoneyBag to this money. This is a helper method for

* implementing double dispatch

*/

public abstract IMoney addMoneyBag(MoneyBag s);

/**

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: clover java JAVA Java junit Junit JUnit JUNIT 单元

51/512345>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网