Java单元测试之代码覆盖率-JaCoCo

来源:互联网 发布:数组寻路算法 编辑:程序博客网 时间:2024/04/30 19:55
代码覆盖率测试的工具,比较常用的如下: 
(1)开源: 
  JaCoCo http://www.eclemma.org/jacoco/ 
  Cobetura http://cobertura.sourceforge.net/ 
  Emma http://emma.sourceforge.net/ 

(2)商用: 
  Clover http://www.atlassian.com/software/clover/overview 

JaCoCo(Java Code Coverage)是开源的Java代码覆盖率测试library,它可以集成到ANT、Maven等build工具中。它采用标准的JVM Tool Interface。把JaCoCo agent 加入到JVM后启动,加载到JVM中的class具体被执行了哪些代码行将会被记录下来,JaCoCo搜集这些执行信息直到JVM结束后生成静态报告。 
 

启动JVM时添加VM参数: 
引用
-javaagent:[yourpath/]jacocoagent.jar

还可以指定很多option,具体可以参考http://www.eclemma.org/jacoco/trunk/doc/agent.html 

执行完成后会在工程根目录下生成jacoco.exec文件,如果要查看jacoco.exec文件需要安装Eclipse插件EclEmma。 
 

如果想看具体的报告,需要借助JaCoCo的Ant扩展来生成报告文件: 
http://www.eclemma.org/jacoco/trunk/doc/examples/build/build.xml 
Xml代码  收藏代码
  1. <project default="report" xmlns:jacoco="antlib:org.jacoco.ant">  
  2.     <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">  
  3.         <classpath path="lib/jacocoant.jar" />  
  4.     </taskdef>  
  5.     <target name="report">  
  6.         <jacoco:report>  
  7.             <executiondata>  
  8.                 <file file="jacoco.exec" />  
  9.             </executiondata>  
  10.             <structure name="JaCoCo Ant Example">  
  11.                 <classfiles>  
  12.                     <fileset dir="bin" />  
  13.                 </classfiles>  
  14.                 <sourcefiles encoding="UTF-8">  
  15.                     <fileset dir="src" />  
  16.                 </sourcefiles>  
  17.             </structure>  
  18.             <html destdir="target" />  
  19.             <csv destfile="target/report.csv" />  
  20.         </jacoco:report>  
  21.     </target>  
  22. </project>  


HTML版本的报告: 


CSV版本的报告: 


http://blog.csdn.net/wangmuming/article/details/23455947
  • eclemma-2.2.1.zip (1.1 MB)
  • 下载次数: 41
  • jacoco-0.6.4.201312101107.zip (2.5 MB)
  • 下载次数: 45
  • JaCoCoTest.zip (1.1 MB)
  • 下载次数: 53
  • 查看图片附件
转载:http://rensanning.iteye.com/blog/2002371
0 0
原创粉丝点击