`
温柔一刀
  • 浏览: 863277 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用 Cobertura 测量代码测试覆盖率

阅读更多

Cobertura是一个基于jcoverage的免费Java工具,它能够显示哪一部分代码被你的测试所覆盖,并可生成HTML或XML报告.

 

cobertura 的大概基本工作思路:
1.对已经编译好的class 文件添加标记
2. 对添加好标记的代码进行单元测试
3. 输出覆盖率统计报告

在ant 中使用cobertura 的基本步骤:
1. 编译代码
2. 定义cobertura 的ant task
3. 用nstrument 命令为编译好的代码添加标记
4. 用junit 命令对添加好标记的代码进行单元测试
5. 用cobertura-report 命令输出报告

 

编译代码:

<target name="compile">
        <ant antfile="build.xml" inheritAll="false" target="compile"/>
 </target>
 

在 build.xml 文件中添加一个任务定义:

 

<path id="cobertura.classpath">
        <fileset dir="${lib.dir}">
            <include name="cobertura/*.jar"/>
        </fileset>
        <pathelement location="${cobertura.instrumented.classes.dir}"/>
    </path>

    <taskdef classpathref="cobertura.classpath" resource="tasks.properties"/>

 

添加一个instrument 任务,该任务将在已经编译好的类文件中添加标记。todir 属性指定将测量类放到什么地方。fileset 子元素指定测量哪些 .class文件:

<target name="instrument" depends="compile">
        <cobertura-instrument todir="${cobertura.instrumented.classes.dir}">
            <fileset dir="${build.src.dir}">
                <include name="**/*.class"/>
                <exclude name="**/web/**/*.class"/>
                <exclude name="**/constant/*.class"/>
                <exclude name="**/*Test.class"/>
            </fileset>
        </cobertura-instrument>
    </target>

 可以排除一些不需要检查的class文件。

运行测试:

<target name="cover-test" depends="instrument">
        <mkdir dir="${cobertura.report.dir}"/>
        <junit fork="true" failureproperty="unit.tests.failed" printsummary="true" showoutput="yes">
            <classpath>
                <!--
                   Note the classpath order: instrumented classes are before the
                   original (uninstrumented) classes.  This is important.
               -->
                <path refid="cobertura.classpath"/>
                <path refid="test.classpath"/>
            </classpath>
            <formatter type="xml"/>
            <batchtest todir="${cobertura.report.dir}">
                <fileset dir="${build.unittest.dir}">
                    <include name="**/*Test.class"/>
                </fileset>
                <fileset dir="${build.functionaltest.dir}">
                    <include name="**/*Test.class"/>
                </fileset>
                <fileset dir="${build.integrationtest.dir}">
                    <include name="**/*Test.class"/>
                </fileset>
            </batchtest>
        </junit>
    </target>
 

最后,生成测试测量报告:

<target name="coverage-report" depends="cover-test">
        <cobertura-report format="html" destdir="${cobertura.report.dir}" srcdir="${src.dir}"/>
    </target>
 

生成的报告形式大概如下:

 

测量效果图

  • 描述: 测量效果图
  • 大小: 574.5 KB
  • 描述: 测量效果图
  • 大小: 311.4 KB
分享到:
评论

相关推荐

    用 Cobertura 测量测试覆盖率

    总的来说,使用 Cobertura 是一种有效的监控和改善代码测试覆盖率的方法,它有助于确保软件的质量和稳定性,减少潜在的缺陷。通过持续关注并优化测试覆盖率,开发者可以提升整体的代码质量,使得软件产品更加可靠。

    Cobertura代码覆盖率测试工具介绍

    Cobertura 是一种开源测试工具,它通过检测基本的代码,并观察在测试包运行时执行了哪些代码以及哪些代码没有执行,来测量测试覆盖率。除了找出未测试到的代码并发现 BUG 外,Cobertura 还可以通过标记无用的、执行...

    测试覆盖率工具

    总结来说,测试覆盖率工具是保证软件质量的重要工具,通过合理的使用和管理,可以帮助我们提高代码的健壮性和可靠性。理解不同类型的覆盖率,选择适合的工具,并将其融入到开发流程中,是提升软件质量的关键。

    cobertura1.9.1

    它能够帮助开发者测量和报告程序代码的测试覆盖率,即多少代码被单元测试执行过。这对于确保软件的质量和可靠性至关重要,因为未经过测试的代码可能会隐藏潜在的错误。 在描述中提到的"ant+junit+cobertura的build....

    cobertura

    Cobertura通常通过Ant脚本来集成到项目中,以便在持续集成或开发过程中自动测量代码覆盖率。 关于“源码”标签,这表明Cobertura不仅是一个二进制工具,还提供了源代码,允许用户查看、修改和扩展其功能。这对于...

    代码覆盖率工具介绍.zip

    Cobertura不仅支持基本的覆盖率类型,还提供了一种称为“包装器覆盖率”的高级功能,用于测量测试代码对第三方库的覆盖情况。 使用代码覆盖率工具的目的是为了更好地实现测试驱动开发(TDD)和持续集成(CI),确保...

    JSCover 是一个 JavaScript 代码覆盖率工具,用于测量行、分支和函数的覆盖率_java_代码_相关文件_下载

    JSCover 是一个易于使用的 JavaScript 代码覆盖率测量工具。它是流行的 JSCoverage工具的增强版本,增加了一些功能,包括分支覆盖率、 LCOV和用于 CI 集成的Cobertura XML报告、用于自动化测试的钩子和HTML 本地存储...

    cobertura-1.9.4.1-src.zip

    Cobertura是一款开源的Java代码覆盖率工具,它用于测量Java程序单元测试的覆盖率。这个"cobertura-1.9.4.1-src.zip"压缩包包含的是Cobertura 1.9.4.1版本的源代码。源代码是任何软件开发的基础,它允许开发者深入...

    cobertura-1.9.4.1-bin.zip

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

    java代码测试

    如JaCoCo或Cobertura,这些工具可以测量代码被测试覆盖的程度,帮助识别未被测试的代码。 7. 异常处理和错误报告: 使用try-catch语句捕获异常是Java中常见的做法。日志记录工具如Log4j或SLF4J可以帮助记录和分析...

    ads-lib-1.34.0.zip

    总结起来,`gradle-cobertura-plugin.zip`为开源项目带来了强大的代码覆盖率分析能力,它简化了Cobertura在Gradle项目中的集成,使开发者能够轻松地监控和提升代码测试覆盖率。通过对`ads-lib-1.34.0.zip`等组件的...

    junit测试源代码

    10. **测试覆盖率**:JUnit可以与其他工具(如JaCoCo或Cobertura)集成,来测量代码的测试覆盖率,帮助识别未被测试到的代码。 通过分析`JuintDemo2`这个文件,我们可以学习如何组织和执行测试,理解测试的结构和...

    appengine-testing-1.8.4.zip

    Cobertura插件使开发者能在Gradle构建流程中轻松集成代码覆盖率检查,自动运行并报告测试覆盖率。 6. **开源软件**:开源项目意味着源代码对公众开放,鼓励社区参与和贡献。这有助于项目的持续改进,并促进技术知识...

    JSCover:JSCover 是一个 JavaScript 代码覆盖率工具,用于测量行、分支和函数覆盖率

    JSCover 是一个易于使用的 JavaScript 代码覆盖率测量工具。 它是流行的工具的增强版本,增加了多项功能,包括用于 CI 集成的分支覆盖率、 LCOV和Cobertura XML报告、用于自动化测试的钩子和HTML 本地存储,以在不...

    junit ppt

    9. **代码覆盖率(Cobertura)**:Cobertura是用于测量Java代码覆盖率的工具,可能这部分会讲解如何集成Cobertura,分析测试覆盖的代码比例,以及提高测试覆盖率的重要性。 【标签】"源码"和"工具"表明这个PPT可能...

    基于java进行的软件测试实验代码.zip

    7. **代码覆盖率工具**: 如JaCoCo或Cobertura,用于测量测试覆盖了多少源代码。这些工具可以帮助我们评估测试的充分性,并确定哪些部分的代码还需要更多的测试。 8. **异常处理和日志记录**: 在测试中,正确地处理...

Global site tag (gtag.js) - Google Analytics