cobertura 使用_使用Cobertura,JUnit,HSQLDB,JPA涵盖您的测试

cobertura 使用

你好!你好吗?

今天让我们谈谈一个非常有用的工具,名为“ Cobertura”。 该框架与我们在另一篇文章中看到的Emma框架具有相同的功能。

Cobertura和Emma之间的主要区别在于Cobertura显示带有图形的简历页面。

如果要查看有关此主题的其他主题,请单击以下链接: 使用JUnit Ant和Emma进行的测试覆盖 // // 使用HSQLDB,JPA和Hibernate进行的JUnit // TDD –第一步

我将使用本文中的相同代码( 带有HSQLDB,JPA和Hibernate的JUnit ); 如果您想设置一个环境来运行代码,则可以按照在那里找到的步骤进行操作(您将在本文末尾找到要下载的源代码)。
我不是熟练的Ant用户,您可能会看到一些代码并认为“此脚本不好”。 随意告诉我如何“升级”蚂蚁代码的想法。 ;)

让我们下载Cobertura库– Download1.9.4.1

下载完成后,将jar文件(/cobertura.jar、/lib/*包括asm,jakarta,log4j)放入我们项目的lib文件夹中。

在我们项目的根源中,使用以下代码创建一个名为“ build.xml”的文件创建的文件必须位于您项目的根目录中,否则您的项目将无法运行 ):

<project name="Cobertura Coverage" basedir=".">
 
    <!--  Project Source  Code -->
    <property name="src.dir" value="src" />
    <property name="build.dir" value="bin" />
    <property name="teste.dir" value="src/test" />
    <property name="lib.dir" value="lib" />
    <property name="report.dir" value="cobertura" />
 
    <!-- Project classpath -->
    <path id="project.classpath">
        <pathelement location="${bin.dir}" />
        <fileset dir="${lib.dir}">
            <include name="*.jar" />
        </fileset>
    </path>
 
    <!-- Tested Class -->
    <property name="DogFacadeTest" value="test.com.facade.DogFacadeTest" />
 
</project>

在上面的代码中,我们正在创建源代码和库的路径。 让我们创建一个任务,以删除由Cobertura生成的文件和已编译的Java源代码。

<!-- Clears the paths -->
<target name="01-CleannUp" description="Remove all generated files.">
    <delete dir="${build.dir}" />
    <delete file="cobertura.ser" />
    <delete dir="${report.dir}" />
 
    <mkdir dir="${build.dir}" />
    <mkdir dir="${report.dir}" />
</target>

要编译我们的源代码,请在下面添加代码并运行任务(确保代码可以编译):

<!-- Compiles the Java code -->
<target name="02-Compile" depends="01-CleannUp" description="invoke compiler">
    <javac debug="true" debuglevel="vars,lines,source" srcdir="${src.dir}" destdir="${build.dir}">
        <classpath refid="project.classpath" />
    </javac>
    <copy file="${src.dir}/META-INF/persistence.xml" todir="${build.dir}/META-INF" />
</target>

让我们设置Cobertura,以便它可以测试测试类并准备好环境:

<!-- Cobertura configs -->
<property name="cobertura.instrumented-classes.dir" value="${report.dir}/instrumented-classes" />
<property name="cobertura.data.file" value="cobertura.ser" />
<path id="cobertura.classpath">
    <fileset dir="${lib.dir}" includes="/*.jar" />
</path>
 
<!-- Points to the cobertura jar -->
<taskdef classpath="${lib.dir}/cobertura.jar" resource="tasks.properties" classpathref="cobertura.classpath" />
 
<!-- Instruments the classes -->
<target name="03-Instrument" depends="02-Compile">
    <delete quiet="false" failonerror="false">
        <fileset dir="${cobertura.instrumented-classes.dir}" />
    </delete>
    <delete file="${cobertura.data.file}" />
    <cobertura-instrument todir="${cobertura.instrumented-classes.dir}">
        <fileset dir="${build.dir}">
            <include name="**/*.class" />
            <exclude name="**/*Test.class" />
        </fileset>
    </cobertura-instrument>
    <copy todir="${cobertura.instrumented-classes.dir}">
        <fileset dir="${src.dir}" casesensitive="yes">
            <patternset id="resources.ps" />
        </fileset>
    </copy>
</target>

添加下面的代码,您将能够通过ant使用JUnit执行测试:

<!-- Set up the instrumented classes path -->
<path id="cover-test.classpath">
    <fileset dir="${lib.dir}" includes="**/*.jar" />
    <pathelement location="${cobertura.instrumented-classes.dir}" />
    <pathelement location="${build.dir}" />
</path>
 
<!-- Run the JUnit test -->
<target name="04-RunTest" depends="03-Instrument" >
    <junit printsummary="yes" haltonerror="no" haltonfailure="no"  fork="yes">
        <batchtest>
            <fileset dir="${build.dir}" includes="**/*Test.class" />
        </batchtest>
        <classpath refid="cover-test.classpath" />
    </junit>
    <delete file="transaction.log" />
</target>

作为我们的最后一个动作,让我们使用Cobertura创建报告。 将下面的代码添加到“ build.xml”中并执行任务:

<!-- Creates the Cobertura report -->
<target name="00-CreateReport" depends="04-RunTest">
    <cobertura-report srcdir="${cobertura.data.file}" destdir="${report.dir}">
        <fileset dir="${src.dir}">
            <include name="**/*.java" />
        </fileset>
    </cobertura-report>
 
    <delete dir="${report.dir}/instrumented-classes" />
    <delete file="cobertura.ser"  />
</target>

更新您的Eclipse项目(在项目中按F5键),您将看到报告创建成功。 打开“ cobertura”文件夹中的“ index.html”文件。

Cobertura框架可帮助我们计算应测试方法的次数。 在编写家庭作业“ Dog equals”方法时,请创建报告,这样您可能会发现自己的“ equals”未涵盖在内。 创建测试并再次运行报告。

您可以在此处从我们的项目中下载源代码

如果您有任何疑问或疑问,请在下面写下。

再见。 \ o_

参考:我们的JCG合作伙伴 提供的Cobertura,JUnit,HSQLDB,JPA涵盖了您的测试   uaiHebert博客上的Hebert Coelho。


翻译自: https://www.javacodegeeks.com/2012/02/covering-your-tests-with-cobertura.html

cobertura 使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值