`

[开源]JaCoco [转载]

阅读更多

From: http://blog.csdn.net/jungle0127/article/details/7302120

JaCoCo是基於ANT的單元測試覆蓋率報告自動生成工具,它可用來針對整個專案的單元測試用例生成覆蓋率報告。

JaCoCo的下載

頁面下載最新版本的JaCoCo壓縮包,解壓縮後找到Lib資料夾下的jacocoant.jar文件備用。

JaCoCo工具是與ANT工具結合使用,用來完成自動化單元測試的覆蓋率報告生成工作。在ANT的腳本裡設置步驟如下所示:

1.        在根節點裡添加屬性 basedir=”.” 和xmlns:jacoco="antlib:org.jacoco.ant",示例如下:

<projectbasedir="." default="build"name="alertmanager"xmlns:jacoco="antlib:org.jacoco.ant">

2.        創建單元測試覆蓋率報告生成目錄,示例如下:

<propertyname="result.dir" value="${basedir}/result"/>

<propertyname="result.class.dir" value="${result.dir}/classes"/>

<propertyname="result.data.dir" value="${result.dir}/data"/>

<propertyname="result.jacoco.dir" value="${result.dir}/jacoco"/>

<propertyname="result.jacoco.report.dir"value="${result.jacoco.dir}/report" />

3.        創建對jacocoant.jar引用的taskdef節點,示例如下:

<taskdefuri="antlib:org.jacoco.ant"resource="org/jacoco/ant/antlib.xml">

      <classpath path="${basedir}/lib/jacocoant.jar" />

</taskdef>

4.        在項目的classpath節點中創建對jacocoant.jar引用的classpath項,示例如下:

<pathelementlocation="${basedir}/lib/jacocoant.jar"/>

5.        在初始化任務中創建單元測試覆蓋率報告生成的目標目錄,示例如下:

   <target name="init">

   <mkdir dir="${result.dir}"/>

   <mkdir dir="${result.data.dir}"/>

   <mkdir dir="${result.class.dir}"/>

   <mkdir dir="${result.jacoco.dir}"/>

   <mkdir dir="${result.jacoco.report.dir}"/>

      …

   </target>

單元測試運行部分

建立一個新的ANT任務,該任務是運行專案中所有的單元測試並收集相關資料,示例及其相關注解如下。

<targetname="rununittest"depends="ambuild">       ------1

      <jacoco:coverage>

          <junit fork="true" printsummary="true">

             <batchtest todir="${result.data.dir}">------2

                 <fileset dir="${result.class.dir}">

                    <include name="**/*Test.class"/>

                    <exclude name="**/*DispatchTest.class"/>

                 </fileset>

             </batchtest>

             <formatter type="brief" usefile="false"/>------3

             <formatter type="xml"/>

             <formatter type="plain"/>

             <classpathrefid="alertmanager.classpath"/>            

          </junit>

      </jacoco:coverage>

</target>

1. 該項任務依賴於所在專案的BUILD任務,即在運行此任務前需要保證該專案已成功編譯。示例中depends=”ambuild”,ambuild任務即為該項目的編譯任務。

2. JaCoCo是基於JUnit的,所以在jacoco標籤包含了junit標籤;<batchtest>標籤將使用者關心的單元測試class檔包含進來。

3. 本部分是對單元測試覆蓋率報告資料格式的設置及單元測試成功運行所需的classpath的設置。

單元測試覆蓋統治報告生成部分

建立一個新的ANT任務,該任務是用來根據單元測試運行部分一節的結果生成單元測試覆蓋統治報告,示例及其相關注釋如下。

<targetname="coveragereport" description="Generatereport byJacoco" depends="rununittest">

      <jacoco:report>

          <executiondata>------1

             <file file="${basedir}/jacoco.exec"/>

          </executiondata>

          <!--the class files and optional source files ... -->

          <structure name="Coveragereport of Alert Manager."> ------2

             <classfiles>

                 <fileset dir="${result.class.dir}">

                    <exclude name="**/*Test.class"/>

                 </fileset>

             </classfiles>

             <sourcefiles encoding="UTF-8">

                 <fileset dir="${basedir}/src" >

                    <exclude name="**/*Exception.java"/>

                    <exclude name="**/*ExportData*.jar"/>

                    <exclude name="**/*DispatchTest.java"/>

                    <exclude name="**/*Sender.java"/>

                 </fileset>

             </sourcefiles>

          </structure>

              

          <!--to produce reports in different formats. -->

          <html footer="GeneratedBy PartySchool."destdir="${result.jacoco.report.dir}" />  ------3

          <csv destfile="${result.jacoco.report.dir}/report.csv" />

          <xml destfile="${result.jacoco.report.dir}/report.xml" />

      </jacoco:report>

</target>

1.      指定生成單元測試覆蓋率報告所必須的檔,該檔由首次運行該ANT任務時,自動生成,用戶不必關心它。

2.      該部分是將使用者關心的單元測試的class檔及專案原始檔案添加進來。

3.      該部分是設置單元測試覆蓋率報告的格式。

單元測試覆蓋率報告結果示例如圖一所示:

分享到:
评论

相关推荐

    jacoco部署需要的东西

    JaCoCo是一款流行的开源代码覆盖率工具,它支持多种构建工具,如Maven、Gradle和Ant。这篇文章将详细介绍如何部署JaCoCo以获取项目的代码覆盖率报告。 首先,我们需要理解JaCoCo的工作原理。JaCoCo通过字节码注入的...

    jacoco官方0.8.7版本用于检测代码覆盖率

    JaCoCo,全称为Java Code Coverage Library,是一款广泛使用的开源代码覆盖率工具,适用于Java应用程序。它提供了全面且精确的代码覆盖率报告,帮助开发者确保测试覆盖了大部分代码,遵循良好的软件开发实践。JaCoCo...

    jacoco-0.8.8.zip

    JaCoCo是一款强大的开源插件,它允许开发者衡量和分析他们的Java代码在执行测试时被覆盖的程度。代码覆盖率是评估测试质量的一个关键指标,它表明了测试用例执行了多少源代码。 ** 代码覆盖率 ** 代码覆盖率是指...

    jacoco获取exec和获取report

    JaCoCo(Java Code Coverage)是一个广泛使用的开源代码覆盖率工具,专门针对Java应用程序。它提供了简单的API和Maven、Gradle等构建工具的插件,使得开发者能够轻松地集成到自己的项目中,以测量单元测试的代码覆盖...

    Junit+Jacoco+ant集成使用

    JUnit是Java编程语言的一个开源测试框架,主要用于编写和运行基于JUnit注解的单元测试。它提供了断言方法来验证程序行为是否符合预期,并支持多种测试结构,如@Test注解、@Before和@After方法等。JUnit5作为最新版本...

    Super-jacoco应用统计代码覆盖率及问题处理

    JaCoCo是一款开源的Java代码覆盖率工具,它能够方便地集成到Maven、Gradle或IntelliJ IDEA等开发环境中,为项目提供详尽的单元测试覆盖率报告。JaCoCo通过字节码注入技术,动态地收集运行时的执行信息,从而计算出...

    jacoco.zip

    JaCoCo(Java Code Coverage)是一款开源的代码覆盖率工具,广泛用于Java项目的单元测试覆盖率分析。它的主要功能是收集和报告Java程序运行时的代码覆盖率信息,这对于确保代码的质量和测试的完整性至关重要。JaCoCo...

    jacoco插装文件

    Java代码覆盖率工具JaCoCo是Java开发者在进行单元测试时常用的一款开源库,它能够帮助开发者精确地衡量代码被测试覆盖的程度。JaCoCo通过字节码插装技术(Bytecode Instrumentation)来实现对代码覆盖率的跟踪。下面...

    jacoco.rar

    JaCoCo是一款开源的Java代码覆盖率工具,广泛用于测试阶段,以评估代码被测试的程度。 【描述】在Linux系统中,配置Tomcat以集成JaCoCo,主要是为了监控和报告Java应用程序的代码覆盖率。这个过程包括以下几个关键...

    jacoco-android-gradle-plugin,为android单元测试创建jacoco测试报告的gradle插件.zip

    `jacoco-android-gradle-plugin` 是一个针对Android开发者的开源项目,它主要目的是简化使用JaCoCo工具来生成单元测试覆盖率报告的过程。JaCoCo是一款强大的Java代码覆盖率工具,它能够帮助开发者量化代码测试的质量...

    jacoco框架源码

    JaCoCo,全称为Java Code Coverage Library,是一个开源的Java代码覆盖率工具。它被广泛用于软件开发中的单元测试覆盖率分析,帮助开发者了解测试覆盖了多少代码,确保测试的质量和完整性。JaCoCo的核心功能是通过...

    jacoco单元测试覆盖率+maven DEMO2

    JaCoCo是一款流行的开源Java代码覆盖率工具,它能轻松地集成到构建工具如Maven中,帮助开发者准确地了解单元测试的覆盖率情况。 **JaCoCo简介** JaCoCo提供了全面的代码覆盖率报告,包括行覆盖率、分支覆盖率、...

    JaCoCo -针对java的覆盖率统计工具.pptx

    JaCoCo是一款针对Java语言的开源代码覆盖率工具,它提供了多维度的覆盖率计数器,如指令级覆盖、分支覆盖、圈复杂度、行覆盖、方法覆盖和类覆盖等,帮助开发者评估单元测试的覆盖率。JaCoCo通过插入字节码来收集覆盖...

    java-jacoco-单元测试覆盖-示例项目

    而JaCoCo(JaCoCo: Java Code Coverage Library)是一款广泛使用的开源代码覆盖率工具,它可以帮助开发者衡量和分析单元测试对代码的覆盖程度,确保测试的全面性。 JaCoCo主要功能: 1. **代码覆盖率统计**:JaCoCo...

    jacoco-sonarqube-maven覆盖率统计参考项目

    SonarQube则是一个开源的质量管理和代码审查平台,它提供了代码静态分析、漏洞检测、代码复杂度计算以及覆盖率报告等功能。SonarQube可以与多种构建工具(如Maven)和测试框架(如JUnit)集成,提供了一站式的质量...

    Android 开源在线音乐播放器

    还有简单的密码验证 开发软件:Android StudioAndroid 开源在线音乐播放器Android 开源在线音乐播放器Android 开源在线音乐播放器Android 开源在线音乐播放器Android 开源在线音乐播放器Android 开源在线音乐播放器...

    天若OCR开源版V5.0.0

    天若OCR开源版V5.0.0天若OCR开源版V5.0.0天若OCR开源版V5.0.0天若OCR开源版V5.0.0天若OCR开源版V5.0.0天若OCR开源版V5.0.0天若OCR开源版V5.0.0天若OCR开源版V5.0.0天若OCR开源版V5.0.0天若OCR开源版V5.0.0天若OCR...

    jacoco-master.zip

    JaCoCo,全称JaCoCo - Java Code Coverage Library,是一款强大的开源Java代码覆盖率工具,专为测试代码覆盖率而设计。它与Eclipse公共许可证(EPL)兼容,这意味着你可以自由地使用、修改和分享JaCoCo,符合开源...

    SimpleBGC32- 开源三轴无刷云台算法完全解说_电机_mpu6050三轴云台_云台开源算法_云台电机_电机开源_

    标题中的“SimpleBGC32- 开源三轴无刷云台算法完全解说”表明了这是一个关于三轴无刷电机云台控制系统的详细介绍,重点在于其开源算法。这个系统基于STM32F103RC微控制器,结合了MPU6050六轴传感器,用于实现飞行器...

Global site tag (gtag.js) - Google Analytics