`

[开源]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-0.8.8.zip

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

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

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

    jacoco获取exec和获取report

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

    Junit+Jacoco+ant集成使用

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

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

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

    基于Jacoco的代码覆盖率实时监控与精准测试实践-QECon深圳站2021年全球软件质量&效能大会.pdf

    【基于Jacoco的代码覆盖率实时监控与精准测试实践】 在软件开发过程中,代码覆盖率是评估测试有效性的重要指标,它能够帮助我们了解测试用例对代码的覆盖程度。Jacoco是一款广泛使用的Java代码覆盖率工具,它提供了...

    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单元测试覆盖率+maven DEMO2

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

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

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

    jacoco+sonar代码覆盖率工具.zip

    JaCoCo(Java Code Coverage)是一款开源的Java代码覆盖率工具,它能够为Java应用程序提供详细的代码覆盖率报告。JaCoCo通过插入字节码的方式在运行时收集覆盖率数据,支持Java应用程序、Java代理、Java Applets、...

    jenkins集成jacoco获取代码覆盖率.docx

    JaCoCo,全称Java Code Coverage Library,是一个专为Java开发的开源覆盖率工具。JaCoCo能够提供详尽的代码覆盖率报告,帮助开发者评估他们的测试覆盖率,确保代码的健壮性和质量。它可以通过多种方式进行集成,包括...

    sbt-jacoco, 在sbt中,JaCoCo代码覆盖插件.zip

    sbt-jacoco, 在sbt中,JaCoCo代码覆盖插件 sbt JaCoCo - sbt中通过JaCoCo的代码覆盖率 这是一个 sbt插件插件,用于通过 JaCoCo 进行代码覆盖率分析。通过将以下内容添加到 project/plugins.sbt 来安装插件:ad

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

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

    JUnit+Ant+Jacoco整合 简单的Demo源码

    其次,Ant是一个开源的Java构建工具,基于XML配置,用于自动化构建、编译、测试和部署Java项目。在本Demo中,Ant被用来管理项目的构建过程,包括编译源代码、运行测试和生成报告。你将学习到如何在build.xml文件中...

    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...

    转载一个优秀的开源项目

    【标题】:“SUSHIDO Project 开源项目解析” 在IT行业中,开源项目是技术发展的重要驱动力,它们促进了代码共享、协作创新,并为开发者提供了学习和实践的平台。本篇文章将详细探讨一个名为"SUSHIDO Project"的...

Global site tag (gtag.js) - Google Analytics