- 浏览: 695927 次
- 性别:
- 来自: 沈阳
文章分类
- 全部博客 (270)
- Ant Tool Script (12)
- XMLDigest (5)
- MyEclipse8.6 (1)
- RedHat (5)
- SVNVersionController (4)
- BatOperation (6)
- JspAndFaceWeb (66)
- javaSwing (18)
- PHP (12)
- J2SE (6)
- TestToolAndTestManual (12)
- C# (34)
- Java PatternDesign (20)
- Axis2AndWebService (5)
- ITLive (2)
- DBAndControl (10)
- C/C++ (8)
- Andriod (7)
- Python (7)
- JavaWork (16)
- Android-QA (1)
- Apache-Wicket (1)
- POI (1)
- JQuery (2)
- Struts2 (1)
- Flex&Flash (6)
- sdsdsd (0)
- 1212 (0)
最新评论
-
anayomin:
对九楼继续改进
public static <T> ...
Java List 分页 -
H4X0R:
来学习学习,赞一个
Aqua Data Studio 导出SQL -
yankai0219:
现在出现这个错误 Fatal error: Class 'PH ...
纯PHP搭建Apache+Eclipse+xDebug+PHPUnit+MakeGood -
yankai0219:
您好,我在搭建环境中提示PHPUnit_Framework_T ...
纯PHP搭建Apache+Eclipse+xDebug+PHPUnit+MakeGood -
wilsonchen:
chenhailong 写道wilsonchen 写道chen ...
C# RSA和Java RSA互通
Java Coverage(Cobertura)工具
最近有点清闲了,我的前辈让我研究Java Coverage的工具,发现这个Cobertura很名就给大家介绍一下吧
首先当然是下载Cobertura的jar包了,这个工具底层是JCoverage,熟悉Jcoverage的对这个也不会陌生的
Cobertura官网 http://cobertura.sourceforge.net/
大家可以了解很多东西,比如现在的作者啊什么,这里就不介绍了
然后点Download,下载二进制版本,比如名字叫cobertura-1.9.4.1(我用的是最新的version)
最后就是实践了。。下面就给大家讲解一下这个到底是什么玩意
Cobertura是一个开源的java工具,它主要用在java test中 内部封装了JCoverage
它是一个用ant全自动的测试工具,很强大。
如果你想测试覆盖率的话,用这个软件是相当不错的
那么下面就举一个简单的例子来说明它的强大
以下为要测试的Java类
package com.example.simple; /** * @author cnchenhl 2011/02/25 */ public class PrintStringOfYourName { private String name = null; private int id = 0; private String sex = null; private int age = 0; private String address; public String getName() { return name; } public int getId() { return id; } public String getSex() { return sex; } public int getAge() { return age; } public String getAddress() { return address; } public void setName(String name) { this.name = name; } public void setId(int id) { this.id = id; } public void setSex(String sex) { this.sex = sex; } public void setAge(int age) { this.age = age; } public void setAddress(String address) { this.address = address; } public String toString() { return "Name :" + name + "ID :" + id + "Age :" + age + "Sex :" + sex + "Address :" + address; } }
下面是测试的类test
package com.example.simple; import junit.framework.TestCase; import org.junit.Before; import org.junit.Test; /** * * @author cnchenhl 2011/02/25 */ public class PrintStringOfYourNameTest extends TestCase { @Before public void setUp() throws Exception { System.setProperty("Dnet.sourceforge.cobertura.datafile", "D:/TestCorbertura/cobertura.ser"); } @Test public void testtoString() { PrintStringOfYourName printStringOfYourName = new PrintStringOfYourName(); printStringOfYourName.setAddress("shanghai"); printStringOfYourName.setAge(24); printStringOfYourName.setId(0); printStringOfYourName.setName("chenhailong"); printStringOfYourName.setSex("male"); String str = printStringOfYourName.toString(); assertEquals(str, "Name :chenhailongID :0Age :24Sex :maleAddress :shanghai"); } }
好了准备工作完成了
那就准备自己的ant构建文件了。路径大家要仔细看,可能会有问题的,基本都是你们的路径有问题。
还要说明的一点是
System.setProperty("Dnet.sourceforge.cobertura.datafile", ""D:/TestCorbertura/cobertura.ser"");
是必须加的,官网指定的,大家要注意。因为instruments容易找不到cobertura.ser 文件,在ant中也要设定
具体的请看构建文件build.xml
<?xml version="1.0" encoding="UTF-8"?> <project name="cobertura.examples.basic" default="coverage" basedir="."> <property file="build.properties" /> <property name="bin.dir" value="${basedir}/bin" /> <property name="target" value="target" /> <path id="cobertura.classpath"> <fileset dir="${cobertura.dir}"> <include name="cobertura.jar" /> <include name="lib/**/*.jar" /> </fileset> </path> <taskdef classpathref="cobertura.classpath" resource="tasks.properties"/> <target name="init"> <mkdir dir="${classes.dir}" /> <mkdir dir="${instrumented.dir}" /> <mkdir dir="${reports.xml.dir}" /> <mkdir dir="${reports.html.dir}" /> <mkdir dir="${coverage.xml.dir}" /> <mkdir dir="${coverage.summaryxml.dir}" /> <mkdir dir="${coverage.html.dir}" /> <mkdir dir="${target}" /> </target> <target name="compile" depends="init"> <javac srcdir="${src.dir}" destdir="${classes.dir}" debug="yes"> <classpath refid="cobertura.classpath" /> </javac> </target> <target name="instrument" depends="init,compile"> <echo message="copy the file to the classes" /> <copy todir="${classes.dir}"> <fileset dir="${bin.dir}"> <include name="**/*.class" /> </fileset> </copy> <delete file="cobertura.ser" /> <delete dir="${instrumented.dir}" /> <cobertura-instrument todir="${instrumented.dir}"> <ignore regex="org.apache.log4j.*" /> <fileset dir="${classes.dir}"> <include name="**/*.class" /> <exclude name="**/*Test.class" /> </fileset> </cobertura-instrument> </target> <target name="test" depends="init,compile"> <junit fork="yes" dir="${basedir}" failureProperty="test.failed"> <classpath location="${instrumented.dir}" /> <classpath location="${classes.dir}" /> <classpath > </classpath> <classpath refid="cobertura.classpath" /> <formatter type="xml" /> <test name="${testcase}" todir="${reports.xml.dir}" if="testcase" /> <batchtest todir="${reports.xml.dir}" unless="testcase"> <fileset dir="${src.dir}"> <include name="**/*Test.java" /> </fileset> </batchtest> </junit> <junitreport todir="${reports.xml.dir}"> <fileset dir="${reports.xml.dir}"> <include name="TEST-*.xml" /> </fileset> <report format="frames" todir="${reports.html.dir}" /> </junitreport> </target> <target name="coverage-check"> <cobertura-check branchrate="34" totallinerate="100" /> </target> <target name="coverage-report"> <cobertura-report srcdir="${src.dir}" destdir="${coverage.xml.dir}" format="xml" /> </target> <target name="summary-coverage-report"> <cobertura-report srcdir="${src.dir}" destdir="${coverage.summaryxml.dir}" format="summaryXml" /> </target> <target name="alternate-coverage-report"> <cobertura-report destdir="${coverage.html.dir}"> <fileset dir="${src.dir}"> <include name="**/*.java"/> </fileset> </cobertura-report> </target> <target name="clean" description="Remove all files created by the build/test process."> <delete dir="${classes.dir}" /> <delete dir="${instrumented.dir}" /> <delete dir="${reports.dir}" /> <delete file="cobertura.log" /> <delete file="cobertura.ser" /> <delete dir="${target}" /> </target> <target name="coverage" depends="compile,instrument,test,coverage-report,summary-coverage-report,alternate-coverage-report,band" description="Compile, instrument ourself, run the tests and generate JUnit and coverage reports." /> <target name="band"> <delete file="${target}/report.zip" /> <jar destfile="${target}/report.zip" basedir="${reports.dir}"> <manifest> <attribute name="Build-Time" value="${timeStamp.day}" /> </manifest> </jar> </target> </project>
下面是构建文件需要的环境变量
# The source code for the examples can be found in this directory src.dir=src # The path to cobertura.jar cobertura.dir=D:/cobertura-1.9.4.1 # Classes generated by the javac compiler are deposited in this directory classes.dir=classes # Instrumented classes are deposited into this directory instrumented.dir=instrumented # All reports go into this directory reports.dir=reports # Unit test reports from JUnit are deposited into this directory reports.xml.dir=${reports.dir}/junit-xml reports.html.dir=${reports.dir}/junit-html # Coverage reports are deposited into these directories coverage.xml.dir=${reports.dir}/cobertura-xml coverage.summaryxml.dir=${reports.dir}/cobertura-summary-xml coverage.html.dir=${reports.dir}/cobertura-html
好了以上就大功告成了
哈哈
大家也尝试一下
如果有什么问题的话请给我留言!
谢谢大家的支持
发表评论
-
注册表修改IE—Proxy
2013-06-18 13:07 0[HKEY_CURRENT_USER\Softwar ... -
TestNG 测试工具介绍
2012-11-20 10:42 1495可以说TestNG的功能已经 ... -
YUIDoc Javascript Documentation Tool
2012-11-13 16:32 1355有的时候,生活就像和你作对,你越想干的事情,越干不来,但不想干 ... -
Spring mock 的三种形式
2012-10-16 07:17 2277今天看到一个文章: Spring mock的三种形式: ... -
Mockito怎么样Mock返回值为空的方法
2012-10-15 15:57 21830Mockito怎么样Mock返回值为空的方法? Moc ... -
JUnit Exception: No tests found in *******
2012-10-15 15:50 3256今天遇到以一个问题: JUnit找不到Test的类。 ... -
Closure Compiler实践
2012-07-22 11:15 0Clousure Compiler 是Google的JS 压 ... -
"A script on this page is causing Internet Explorer to run slowly“解决方案
2012-02-16 17:09 3081今天遇到了IE6等版本的s ... -
Eclipse Plugin EasyExplore
2011-12-22 10:49 1200好不容易在官网找到,希望对大家有用 官网现在下不 ... -
Selenium IDE1.1.0 详解(非安装教程)
2011-08-23 21:53 3635今天被一个项目的无厘头工具搞的要死,索性用了selenium强 ... -
Cygwin 统计代码量---工具最有用的一句话
2011-05-30 14:15 1477perl CountDiff.pl -woc -a -i se ... -
Djunit---------Ant 执行指南
2011-03-24 06:58 3886我想大家一定会遇到这个问题的 Djunit 是很强大的软件, ... -
JUnit jumpStart (Junit 起步)
2011-01-29 11:47 1573JUnit jumpStart Never in the ...
相关推荐
### Java Cobertura:代码覆盖率工具详解 #### 一、引言 在软件开发过程中,确保代码的质量至关重要。其中,测试覆盖率是衡量代码质量的关键指标之一。Cobertura是一款开源的Java代码覆盖率工具,它能够帮助开发者...
Cobertura是一款强大的Java代码覆盖率测试工具,它的主要任务是对Java源代码进行度量,以确定测试套件在运行时覆盖了多少代码。这个过程对于确保软件的质量和完整性至关重要,因为全面的测试覆盖率可以帮助开发者...
Cobertura 1.9.1 是一个历史悠久的代码覆盖率工具,主要在Java开发环境中使用。它能够帮助开发者测量和报告程序代码的测试覆盖率,即多少代码被单元测试执行过。这对于确保软件的质量和可靠性至关重要,因为未经过...
`lcov`是一款开源的代码覆盖率分析工具,常用于C++和C项目,而`cobertura`则是Java平台上的代码覆盖率工具。在这个特定的版本`lcov_cobertura-1.3.macosx-10.8-intel.exe`中,它被编译为适用于Mac OS X 10.8(Intel...
在Java世界中,JQF(Java QuantiFiable Fuzzing)是一个开源框架,它提供了高级的模糊测试工具,尤其是Zest Coverage Guided Fuzzer。这个框架结合了模糊测试和代码覆盖率分析,从而能够更有效地探索代码路径,发现...
Cobertura插件 该插件使您可以捕获代码覆盖率报告。 詹金斯(Jenkins)将生成覆盖率趋势报告。Cobertura插件可以在。 版本记录 可以在下面找到版本历史记录: 标记的发行版可以在以下页面上找到: :warning: 此...
├─28个java常用的工具类 │ │ Base64.java │ │ Base64DecodingException.java │ │ CConst.java │ │ CharTools.java │ │ ConfigHelper.java │ │ Counter.java │ │ CTool.java │ │ DateHandler.java ...
Cobertura是Java平台上的一个开源代码覆盖率工具,而此MATLAB实现则让开发者能够以相似的方式分析和度量MATLAB代码的测试覆盖率。 MATLAB的覆盖率分析允许开发者了解在执行测试用例时,代码中的哪些部分被执行到了...
为了实现这些覆盖标准,开发者可以利用各种自动化测试工具,如JaCoCo、Cobertura等,这些工具能够监控代码执行并提供覆盖率报告。同时,TDD(Test-Driven Development,测试驱动开发)和BDD(Behavior-Driven ...
2. **Cobertura**:也是Java的覆盖率工具,提供XML和HTML格式的报告,便于分析。 3. **Codecov**:云服务形式的覆盖率工具,支持多种编程语言,能够与GitHub等版本控制系统集成,实时展示覆盖率变化。 4. **PyTest...
了解如何集成JaCoCo或Cobertura等工具来分析测试覆盖率,可以帮助开发者确保测试的质量。 Mockito是一个流行的Java模拟框架,用于隔离被测试代码。在"8. Mockito"中,你将学习如何创建和配置模拟对象,以及如何验证...
10. Code Coverage工具:JaCoCo或Cobertura可以帮助分析测试覆盖度,确保大部分代码都经过了测试。 通过深入学习和实践这些技术,Java开发者可以实现更高水平的代码质量和项目管理。《测试驱动开发与验收测试驱动...
特征管道支持现代化的覆盖率表覆盖趋势源代码导航管道支持中的并行执行报告合并REST API 故障条件和灵活的阈值设置其他小功能支持的覆盖率格式嵌入式的其他插件,作为Code Coverage API插件的扩展 ( ) ( ) ( )...
7. **Code Coverage**:度量测试覆盖了多少代码,例如JaCoCo或Cobertura工具。 8. **Selenium**:用于Web应用的自动化测试,可以模拟用户交互。 9. **Appium**:移动应用的自动化测试,支持Android和iOS。 10. **...
6. Code Coverage工具:例如JaCoCo或Cobertura,用于测量测试覆盖率,帮助开发者了解哪些代码尚未被测试覆盖,从而改进测试策略。 7. 集成测试:除了单元测试,可能还有集成测试来验证不同组件之间的交互。这可能...
8. **实践意义**:使用"tck-coverage"这样的工具,可以帮助Java开发者确保他们的实现不仅通过了基本的单元测试,还满足了JCP的严格规范,从而提高了软件的质量和可靠性。 9. **持续集成/持续部署(CI/CD)**:在CI/CD...
2. **Cobertura**:另一个早期的Java代码覆盖率工具,它同样支持多种格式的报告输出,并可以集成到持续集成服务器如Jenkins中。 3. **Emma**:虽然现在已经被JaCoCo取代,Emma在过去曾是Java社区广泛使用的代码覆盖...
2. **jacoco.hpi** - JaCoCo (Java Code Coverage) 插件提供了代码覆盖率工具,帮助开发者衡量单元测试对代码覆盖的程度。它生成详细的报告,显示哪些代码行被测试覆盖,有助于提高测试的质量和完整性。 3. **...
6. **Code Coverage Tools**: 为了确保测试的全面性,代码覆盖率工具如JaCoCo和Cobertura可以测量被测试代码被覆盖的程度。这有助于识别未被测试的代码区域,从而改进测试策略。 7. **Selenium for UI Testing**: ...
它是流行的工具的增强版本,增加了多项功能,包括用于 CI 集成的分支覆盖率、 LCOV和Cobertura XML报告、用于自动化测试的钩子和HTML 本地存储,以在不使用 iFrame 或 JavaScript 打开的窗口的情况下维护覆盖率数据...