在Eclipse中使用测试覆盖率工具Clover.docx
《在Eclipse中使用测试覆盖率工具Clover.docx》由会员分享,可在线阅读,更多相关《在Eclipse中使用测试覆盖率工具Clover.docx(12页珍藏版)》请在冰豆网上搜索。
![在Eclipse中使用测试覆盖率工具Clover.docx](https://file1.bdocx.com/fileroot1/2023-1/21/a6d8794d-7be6-40de-9870-abc0e7b62bb9/a6d8794d-7be6-40de-9870-abc0e7b62bb91.gif)
在Eclipse中使用测试覆盖率工具Clover
Clover分析和使用报告
2003-12-9
作者:
丰伟
目录
1前言3
1.1本文档的目的与背景3
1.2适用范围(读者)3
1.3Clover简介3
2使用方法4
2.1安装CloverEclipsePlugin(版本1.1.3)4
2.1.1介绍4
2.1.2注意事项4
2.1.3安装EclipsePlugin5
2.2如何在你的Eclipse项目中使用CloverPlugin5
2.3查看和分析Clover数据8
2.4配置选项10
3分析13
3.1培训时间成本13
3.2使用成本13
3.3对原开发过程的影响13
4建议13
1前言
1.1本文档的目的与背景
针对日方提出:
如何解决测试的覆盖率问题?
对Clover进行使用研究。
1.2适用范围(读者)
PG,TestTeam,集成人员
1.3Clover简介
Clover是商业工具,但它可以免费用于开放源码项目。
Clover是一个测试代码覆盖率分析工具,在软件测试过程中,他帮助查找有哪些没有被充分执行的方法、语句和判断条件,Clover会把覆盖率分析结果以HTML、PDF等格式进行报告。
Clover分两阶段进行工作。
首先,它在编译时向代码中插入Clover执行记录语句。
然后,在测试时Clover执行记录语句会将有关测试的运行路径信息写到用来生成报告的分析数据库中。
分析数据库是一个你可以指定其位置的一个文件。
Clover对许多开发工具提供集成的Plugin,下面的我会讲述如何在我们使用的开发环境Eclipse中使用Clover。
当然,我们也可以使用Clover提供的Ant特性在集成测试下使用Clover,Clover的用户手册中对Ant任务有详细的描述,我们会在集成测试时提供一个Ant文件。
2使用方法
2.1安装CloverEclipsePlugin(版本1.1.3)
注意:
这个plugin可以在Eclipse2.1,2.1.1,2.1.2和3.0M4上使用;用于JDKs1.3.x和1.4.x.
2.1.1介绍
这个CloverEclipsePlugin让你可以在EclipseIDE中检查测试覆盖率,分析结果及察看那些方法、语句和判断条件没有得到充分执行。
2.1.2注意事项
∙如果你的Eclipse项目的source路径与class输出路径相同,Clover将运行错误.
2.1.3安装EclipsePlugin
如果你的Eclipse是打开的,请关闭它.
你需要知道你的Eclipse安装路径,我们以后称呼他为ECLIPSE_HOME.
解压我们提供的clover-eclipse_1._1_3.zip文件,你将看到一个目录为com.cortexeb.tools.clover_x.x
拷贝com.cortexeb.tools.clover_x.x目录到ECLIPSE_HOME/plugins目录下.你应该看到下面目录结构ECLIPSE_HOME/plugins/com.cortexeb.tools.clover_x.x
运行Eclipse,你的Cloverplugin安装完毕.
2.2如何在你的Eclipse项目中使用CloverPlugin
2.2.1.1启动CloverEclipseplugin
在Eclipse项目中,请打开Java(JDT)透视图.
∙使用菜单"Project|Properties"或者右键点击Package浏览器中的项目名称.
∙选择"Clover"页面.
∙选择"EnableCloverpluginintheproject".
∙选择OK,Clover工具窗将会出现在你的workbench中.
2.2.1.2Clover工具窗
Clover工具窗让你控制是否在你的项目中使用Clover,是否显示一个项目/包/类的测试覆盖率.在Clover工具窗中右键选择你想使用Clover进行覆盖率分析的项目,选择"CompilewithClover".
如果你关闭了Clover工具窗,你能使用菜单"Window|ShowView|Other..."和选择"Clover|CloverView"去再次打开他.
Clover工具窗的title上有下列工具图标:
∙Showcoverage.如果你希望在编辑器和任务列表中标记未被测试覆盖的代码,选择它。
∙RefreshCoverageData.重新从Clover数据库中装载覆盖率数据。
∙DeleteCoverageData.从Clover数据库中清除覆盖率数据。
∙CompilewithClover.如果你希望在项目中使用Clover.,选择它。
∙ContextFilter.让你指定不希望被Clover分析的代码段,如try,static,syn等等。
∙UseCloverWorkingSet.如果你选择了它,Clover只对你在WorkingSet定义的项目/包/类进行覆盖率统计.
∙EditWorkingSet.WorkingSet定义了你希望Clover进行分析的项目/目/包/类.
∙ClearWorkingSet.清空WorkingSet.
2.3查看和分析Clover数据
CloverEclipseplugin使你能够在EclipseIDE中察看Clover分析结果.它指定那些方法和语句没有被测试覆盖.你需要选择Clover工具窗的Showcoverage功能,你将要在java编辑器的左边和右边看到指出覆盖问题的tooltip。
如果你想在把让Clover在Eclipse的任务列表中以警告的方式指出覆盖问题,你可以点击任务列表视图的Titles上的filter功能,并选择Clovercoverage.注意任务列表仅仅对打开的文件以警告的方式指出覆盖问题.
2.4配置选项
我们可以对CloverEclipseplugin's在两个地方进行配置,第一种方法,通过(Project|Properties)菜单,另一种方法,通过(Window|Preferences)菜单.
2.4.1.1ProjectProperties-Instrumentation
配置当"CompilewithClover"被选择时所使用的一些选项.
Initstring
定义Clover放置分析数据库的位置,你可以选择"Userspecified"自定义数据库的位置.
FlushPolicy
定义了Clover什么时候把分析结果写到分析数据库中,"Directed"定义了产生的分析数据会被直接写到数据库中,"Interval"则让你定义每隔固定时间Clover输出分析数据到数据库中
FilteringIncludes/Excludes
你可以使用ant匹配语法定义Clover可以对和不对那些文件进行覆盖率分析,例如,如果你不希望对"remote"包的所有文件进行覆盖率分析,你可以在"Excludes"中输入**/remote/*.java.
FilteringUseClassIncludes/Excludes
Clover可以把它向你的文件中加入的代码以内部类的方式实现,你可以选择对那些文件应用这种新的分析实现.
2.4.1.2ProjectProperties-CompilationOptions
用于指定是否启动一个新的JVM对需要分析的文件进行编译.
HeapsizeofcompilerJVM
用于指定新的JVM所需要的堆内存
2.4.1.3CloverPreferences
Deletingexistingcoveragedataeachrebuild
当你重建你的项目时,Clover会要你确认是否删除再分析数据库里的存在的数据,你可以在这里定义当你重建你的项目时缺省的行为和是否向你发出确认信息.
Automaticallyrefreshcoveragedata
如果你选择这个选项,那么plugin将自动在你在frequency里给出的时间间隔内刷新分析结果,否则,你将要使用Clover工具窗的"RefreshCovergeData"按钮去获得最新的分析结果.
Span用于告诉Clover在刷新时读取多长时间的分析数据.
3分析
3.1培训时间成本
需要培训30分钟
3.2使用成本
使用Clover会导致编译代码的时间延长,但在整个项目的比重可以忽略不计.
3.3对原开发过程的影响
我们使用分析结果来确定测试套件对程序功能的覆盖范围到底怎么样.不仅能够防止代码在通过所有测试之前被提交,而且可以防止代码在未经测试的情况下提交!
4建议
Clover是一个使用方便,功能全面的单体测试覆盖率分析工具,可以防止懒惰或考虑不周全所导致的测试覆盖范围偏小,因此,此类强制措施对任何技能级别的程序员都有用。