`
melland
  • 浏览: 72679 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

单元测试覆盖率-使用Clover

    博客分类:
  • JAVA
阅读更多

前段时间做的一个升级包到线上后出了个bug,原因是因为做测试的时候没有完全覆盖到。痛定思痛,决定使用Clover来提高代码的单元测试覆盖率。

开发的IDE是使用的Eclipse3.4,这里主要说一下在Eclipse中如何使用Clover,也是刚使用不久,写在这里和大家探讨一下。

使用从http://www.cenqua.com/download.jspa下载Clover,还需要申请一个license,否则无法使用。我下载了30天试用版。

下载后把Clover压缩包里有两个文件夹,features和plugins。我试着用links的方式安装Clover,不幸的失败了,不知道是不是我哪里配错了,只要直接把两个文件夹解压到ECLIPSE_HOME覆盖。

打开Eclipse,从Window->Show view->other,可以看到Clover的信息:

 

还需要导入clover.license。从Preferences->Clover->License进入:

使用load,导入clover.license。到这里,Clover已经安装完成,开始进入我们的单元测试。

 

我新建了一个project,结构如下:

 

Sample.java和SampleTest.java内容分别是:

package com.lyoe.sample;

public class Sample {
	public Integer add(Integer a, Integer b) {
		if (a == null || b == null) {
			return null;
		}
		Integer sum = new Integer(a.intValue() + b.intValue());
		return sum;
	}
}

 

 

package com.lyoe.sample;

import com.lyoe.sample.Sample;
import junit.framework.TestCase;

public class SampleTest extends TestCase {

	protected void setUp() throws Exception {
		super.setUp();
	}

	public void testAdd() {
		Sample sample = new Sample();
		Integer a = new Integer(1);
		Integer b = new Integer(2);
		Integer c = sample.add(a, b);
		assertNotNull(c);
	}

	protected void tearDown() throws Exception {
		super.tearDown();
	}

}

 

 右击JunitInAction工程,选择Properties->Clover。上面有一个Enable Clover in this project,勾上,apply->OK.

 

从Window->Show view->other进入,找到Coverage Explorer,打开,看到Clover选项的相关信息:

点击红框内的按钮,会弹出重新构建工程的提示,点击"是"即可。

 

在Coverage Explorer界面下,我们会看到:



 

 

右击SampleTest.java,选择Run as->JUnit Test,结果如下:



 

可以看到Sample.java的覆盖率为71.4%.

 

Clover还可以生成三种测试报告:PDF/HTML/XML。按钮可以在Coverage Explorer那排的选项按钮里找到(run new report)。html的测试报告见附件。

 

到这里,已经算是能在Eclipse中使用Clover的基本功能了,以后慢慢探索,欢迎大家扔砖~

 

10
4
分享到:
评论
4 楼 guji528 2012-08-29  
测试结果很友好。能在Eclipse里面直接使用?太好了
3 楼 aoaoao 2008-10-13  
看看了result report,感觉还是相当不错的,对于质量有追求的项目应该帮助很多,多谢楼主推荐。

不过这个license也太让人郁闷了8.。。。
2 楼 stevezheng 2008-10-11  
以前弄过一个,还有crack,一开始还查查,用着挺爽,花哨。但是后来没兴趣了,一度成了累赘了:“一旦覆盖不到,就要想方设法改testcase”。

多累啊

后来自我安慰:“测试不到的地方说明不常能够使用,不常能够使用的地方等出了问题再说”。随即把这个累人的玩艺删了
1 楼 islandoo 2008-10-10  
8错,learning

相关推荐

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

    今天,我们将学习使用 Clover 框架来分析 Java 代码的单元测试覆盖率。 什么是 Clover Clover 是一个流行的代码覆盖率分析工具,由 Cenqua 公司开发。它可以与 JUnit 集成,提供详细的单元测试覆盖率报告。Clover ...

    java代码覆盖率测试工具Clover3.0.365+Junit4.1

    Java代码覆盖率测试是软件开发...总的来说,Clover 3.0.365和JUnit 4.1的结合使用,可以帮助开发者更有效地进行单元测试,确保代码的质量,并提供了一种强大的手段来监控和改进代码覆盖率,从而提升整体的软件质量。

    clover 测试工具安装包

    - **团队协作**:分享Clover报告,促进团队成员间的沟通,共同提高测试覆盖率。 通过使用Clover测试工具,开发者可以更有效地进行代码测试,提升代码质量和项目的可维护性。其Eclipse插件版则为开发人员提供了便捷...

    clover-ant-2.4.2 版本安装包

    Clover-ant-2.4.2是这个工具的一个特定版本,适用于那些希望对代码进行深度测试覆盖率分析的开发者。 Ant是一个开源的Java构建工具,它使用XML描述构建过程,包括编译、测试、打包等任务。Clover Ant扩展了Ant的...

    Clover 是一个基本的Java代码覆盖测试分析工具,提供内部测试,即时IDE反馈,交互报告等。

    在软件开发过程中,测试覆盖率是一个重要的指标,它衡量了代码被自动化测试所覆盖的程度。Clover通过深入集成到开发环境中,提供即时的反馈,使开发者能够在编写代码的同时了解其测试情况。 首先,Clover提供了全面...

    clover的破解包

    转载文章“单元测试覆盖率插件clover的破解及使用”的附件

    接口测试白皮书--淘宝(中国)软件有限公司

    Clover 是一个代码覆盖率工具,用于测量测试覆盖了多少代码。在接口测试中,Clover 可以帮助团队了解测试用例的完整性和有效性。 ##### 5.8 Mock Mock 是一种测试技术,用于模拟接口或类的行为,以帮助隔离被测对象...

    plugins1.rar

    1. **实时测试覆盖率**:Clover能够与集成开发环境(IDE)如Eclipse紧密集成,提供即时的代码覆盖率反馈。在编写和运行单元测试时,开发人员可以直观地看到哪些代码行已经被执行,哪些尚未触达。这种即时反馈机制有...

    使用PHPUnit进行单元测试并生成代码覆盖率报告的方法

    本文将详细介绍如何使用PHPUnit进行单元测试并生成代码覆盖率报告。 首先,要使用PHPUnit,需要确保你的开发环境中已经安装了Composer,它是PHP的一个依赖管理工具。通过Composer安装PHPUnit是常用的方法。可以通过...

    php7.0.33覆盖率统计全部资源

    另一方面,PHPUnit 是PHP的单元测试框架,它内置了对代码覆盖率的支持。通过在测试运行时开启覆盖率收集,开发者可以直接在PHPUnit的输出中看到覆盖率数据。此外,PHPUnit还可以与不同的后处理工具(如 Clover、...

    sohva-testing_2.9.3-0.4.zip

    4. **集成测试**:Clover可以与JUnit、TestNG等测试框架配合,自动计算测试覆盖率。只需确保你的测试任务(如`test`)在Clover任务之后运行,这样测试过程中产生的代码覆盖率数据会被收集。 5. **查看报告**:生成...

    1-Junit-Counter-计算器.rar

    5. **测试覆盖率**:使用 JUnit 运行测试后,可以结合其他工具(如 JaCoCo 或 Clover)评估测试覆盖率,以确保大部分代码都经过了测试。 6. **Mocking 和 Stubbing**:如果 Counter 类依赖于其他组件,如日志服务或...

    seng6245-junit-examples:使用 JUnit 的简单示例,用于单元测试的讲座材料

    9. **测试覆盖率**:虽然 JUnit 不直接提供代码覆盖率工具,但可以与其他工具(如 JaCoCo 或 Clover)集成,以评估测试覆盖了多少代码行。 10. **持续集成**:JUnit 结合 Jenkins、Travis CI 等持续集成工具,可以...

    追求代码质量:不要被覆盖报告所迷惑

    测试覆盖度量工具,如Cobertura、Emma和Clover,常用于跟踪单元测试对代码的执行情况,提供行覆盖和分支覆盖等指标。行覆盖计算被执行的代码行数,而分支覆盖则关注逻辑判断的执行情况。然而,高覆盖率并不一定意味...

    cobertura-1.9.4.1-bin.zip

    Cobertura 是一个用于 Java 代码覆盖率测试的工具,它能够帮助开发者测量和跟踪他们的源代码有多少被单元测试覆盖。 在描述 "cobertura-1.9.4.1-bin.zip" 中,没有额外的具体信息,但我们可以推断这可能是一个 ZIP ...

Global site tag (gtag.js) - Google Analytics