分享
 
 
 

代码测试覆盖率--JCoverage的使用

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

XP编程这么多时间以来深受大家的喜爱,代码测试覆盖率作为XP不可缺少的一个部分深受管理者的喜爱,在目前市场上有很多的这方面的工具,最经典的为cover,但其不是免费的(对商业不是免费,对open source是免费的),今天我将推荐JCoverage,这是一个很不错的工具,虽然不是OpenSource的,但对于个人其有free版的.

主页:http://www.jcoverage.com/

JCoverage的允许需要JUnit和Log4j,等类库,你可以在其文档中看到详细说明,同时JCoverage可以和Ant结合在一起使用,

注意事项:

1 : 初始化是最好删除当前目录下的jcoverage.ser文件,这个文件就是测试的结果,如果其在当前目录下找到这个文件将不会进行测试,或者重新测试

2 : 在进行instrument时,一定要保证其class是debug模式下编译的,否则将不能注入jcoverage指令,建议从新用debug模式编译一个在当前目录

3 : 在进行junit是,一定要保证测试的是加入jcoverage指令的类,否则不能生成jcoverage.ser文件,当然也就不能够测试覆盖率了,我在这个弄了很久,主要是classpath的问题,这个时候你要保证其的classpath中包含加入jcoverage指令的class并不简单,如果你使用工程级别的classpath,那你就痛苦吧,我就是这样痛苦的很,你最好使用一个新的classpath,即除了工程必须的就是加入jcoverage指令的class了,这也就是我下面的例子为什么那么烦琐的原因;这个看似简单的问题会把你的信心给扫的全无.因为如果你经常使用ant的话,那么在你的classpath中有很多个一样的class,如工程自己一个,为了加入jcoverage指令而以debug模式编译的一份,加入jcoverage指令的一份,那么现在至少有三份了,罗嗦了这么多就是不希望大家走弯路.

4 : 最后生成报告,你可以选择html和xml格式,但free版只有html格式,这里有一个不是很完美的地方,如果你的资源代码是UTF-8编码的,那么生成的报告中代码注释将有一部分乱码,

附录中有两部分内容:

附录1:是我个人的ant脚本 ,这段脚步是我个人的环境,你如果需要使用请修改之 ,

附录2:JCoverage的报告截图 ,次报告为Html的格式,当然你也可以设置为其它格式

附录:我个人工程中的ant脚本:

<!--jcoverager report-->

<property name=build.jcoverageReport.dir value=${build.dir}/JCoverageReport />

<taskdef resource=tasks.properties classpathref=appclasspath />

<!--拷贝资源文件,这里主要是为了下面生成报告方便-->

<target name=jcoverage_init depends=init>

<mkdir dir=${build.jcoverageReport.dir}/temp_source />

<copy todir=${build.jcoverageReport.dir}/temp_source>

<fileset dir=${project.src.dir} />

</copy>

<copy todir=${build.jcoverageReport.dir}/temp_source>

<fileset dir=${project.test_src.dir} />

</copy>

</target>

<!--编译资源代码,由于instrument要求class必须为debug模式编译的,为了安全这里从新编译-->

<target name=jcoverage_compile depends=jcoverage_init>

<mkdir dir=${build.jcoverageReport.dir}/temp_classes />

<javac srcdir=${build.jcoverageReport.dir}/temp_source

destdir=${build.jcoverageReport.dir}/temp_classes

debug=yes>

<include name=**/*.java />

<classpath refid=classpath />

</javac>

</target>

<!--instrument在类的二进制文件中注入jcoverage指令;注意:一定是debug模式下编译的类-->

<target name=jcoverage_instrument depends=jcoverage_compile>

<mkdir dir=${build.jcoverageReport.dir}/temp_instrument />

<instrument todir=${build.jcoverageReport.dir}/temp_instrument>

<!-- 忽略org.apache.common的应用 -->

<ignore regex=org.* />

<fileset dir=${build.jcoverageReport.dir}/temp_classes>

<include name=**/*.class />

</fileset>

<classpath refid=classpath />

</instrument>

</target>

<!-- 启动junit,进行代码覆盖测试 -->

<target name=jcoverage_junit depends=jcoverage_instrument>

<mkdir dir=${build.jcoverageReport.dir}/temp_junit />

<junit printsummary=no haltonfailure=no fork=yes>

<formatter type=brief usefile=false />

<formatter type=xml usefile=yes />

<batchtest todir=${build.jcoverageReport.dir}/temp_junit>

<fileset dir=${build.jcoverageReport.dir}/temp_instrument includes=**/*Test.class />

</batchtest>

<classpath>

<pathelement location=${build.jcoverageReport.dir}/temp_instrument />

<path refid=classpath />

</classpath>

</junit>

</target>

<!-- 产生代码覆盖测试报告 -->

<target name=jcoverage_report depends=jcoverage_junit>

<report srcdir=${build.jcoverageReport.dir}/temp_source destdir=${build.jcoverageReport.dir}/>

</target>

<target name=jcoverage depends=jcoverage_compile,jcoverage_instrument,jcoverage_report />

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有