Cobertura是一款优秀的开源测试覆盖率统计工具(http://cobertura.sourceforge.net),  Maven通过cobertura-maven-plugin与之集成,可以使用mvn cobertura:cobertura命令生成单元测试覆盖率报告。报告会在项目的target/site/bobertura目录下生成html文件,点击index.html文件可以看到报告详情。

一 maven插件

参考官方文档http://mojo.codehaus.org/cobertura-maven-plugin/plugin-info.html

官方提供的maven插件,大致有以下goal:

--------------------------------------------------------------------------------
Goal                            Description 
cobertura:check            Check the Last Instrumentation Results. 
cobertura:clean            Clean up rogue files that cobertura maven plugin is tracking. 
cobertura:dump-datafile    Cobertura Datafile Dump Mojo 
cobertura:instrument       Instrument the compiled classes. 
cobertura:cobertura        Instruments, Tests, and Generates a Cobertura Report. 
--------------------------------------------------------------------------------
Maven官方提供的Cobertura插件只支持标准的测试发布路径(有些喜欢将测试类和工程类编译到同一个路径下,但是Maven官方推荐的路径确实将测试类和工程类分开编译到不同的路径下),那首先需要修改编译路径,如果在你的Project POM中没有对编译路径、资源路径做过任何声明,那Maven就会默认取标准路径,如果你的工程真的没有设置这些信息,那么,你很幸运,可以跳过此步。但是如果你的路径不是标准路径,请按以下方式进行修改:

xml 代码

1.  <sourceDirectory>src/main/java</sourceDirectory>

2.  <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>

3.  <testSourceDirectory>src/test/java</testSourceDirectory>

4.  <outputDirectory>target/classes</outputDirectory>

5.  <testOutputDirectory>target/test-classes</testOutputDirectory>

通常情况下我们只需要进行如下配置就足可以应付当前的测试需求了:

xml 代码

1.  <reporting>

2.   <outputDirectory>target/site</outputDirectory>

3.   <plugins>

4.    <plugin>

5.     <groupId>org.codehaus.mojo</groupId>

6.     <artifactId>cobertura-maven-plugin</artifactId>

7.    </plugin>

8.   </plugins>

9.  </reporting>

当QA拿到test case运行的coverage reporting 时,通常希望能够进行打包以和开发人员取得联系,本人目前尚未找到合适的Maven打包方法,由于在Maven2中支持执行Ant脚本,因此我在这里为build节点中的plugins节点提供了一个用ant脚本写的plugin,在Maven命令行通过执行site命令便可以将最后的测试报告(包括测试代码覆盖率和测试用例的运行情况reports)进行打包

xml 代码

1.  <plugin>

2.   <artifactId>maven-antrun-plugin</artifactId>

3.   <executions>

4.    <execution>

5.     <phase>site</phase>

6.     <configuration>

7.      <tasks>

8.       <copy todir="target/classes">

9.        <fileset dir="src/main/java">

10.        <include name="**/*.java" />

11.       </fileset>

12.      </copy>

13.      <jar destfile="target/cover-test-result.zip">

14.       <fileset dir="target/site">

15.        <include name="**/*.html" />

16.        <include name="**/*.css" />

17.        <include name="**/*.txt" />

18.        <include name="**/*.png" />

19.        <include name="**/*.js" />

20.       </fileset>

21.      </jar>

22.     </tasks>

23.    </configuration>

24.    <goals>

25.     <goal>run</goal>

26.    </goals>

27.   </execution>

28.  </executions>

29. </plugin>

继续说Cobertura的附加配置:
通过上面的配置,我们已经可以对一个工程进行代码覆盖率测试了,但是Cobertura在你没有声明test case不用分析覆盖率的情况下,他会连同test case一起分析覆盖率,尽管这样不会影响我们整个工程的代码覆盖率,但是在生成的报告中多出一个testcase来,总让人感觉不是很舒服,因此,你可以采用Cobertura的一些附加配置来限制那些不用进行覆盖率测试的类,具体做法如下:

xml 代码

1.  <plugin>

2.   <groupId>org.codehaus.mojo</groupId>

3.   <artifactId>cobertura-maven-plugin</artifactId>

4.   <configuration>

5.    <instrumentation>

6.     <!--<ignore>.*</ignore>

7.     -->

8.     <excludes>

9.      <exclude>**/*Test.class</exclude>

10.    </excludes>

11.   </instrumentation>

12.  </configuration>

13.  <executions>

14.   <execution>

15.    <goals>

16.     <goal>clean</goal>

17.    </goals>

18.   </execution>

19.  </executions>

20. </plugin>

命令行模式

参考官方文档:http://cobertura.sourceforge.net/commandlinereference.html

1 插桩

cobertura-instrument.sh  [ CODE_SOURCE_DIR | *.jar]  --datafile=*.ser  会直接替换原有的class文件

合并

cobertura-merge.sh --datafile cobertura.ser 1.ser 2.ser… 合并到第一个文件中

产生报告

cobertura-report.sh --datafile *.ser --destination DIR --basedir SOURCE_CODE 生成报告文件到某个目录,默认为html

--format xml : 报告生成xml文件

 

 -Dnet.sourceforge.cobertura.datafile=${basedir}/cobertura.ser

指定生成的覆盖率文件生成的路径

 

转载于:https://blog.51cto.com/drizzlewalk/516908

cobertura试用相关推荐

  1. qt工程在linux系统里颜色显示错误_【飞凌嵌入式RK3399开发板试用体验】+QT开发环境搭建测试(二)...

    作者:飞扬的青春 在拿到开发板之后,已经体验了Android操作系统,接下来就是体验Linux下的开发,本次以QT的一个小案例来测试下. 首先是自己先搭建了一个Ubuntu18.04的虚拟机,使用真机 ...

  2. casperjs 安装试用

    纠结了好久,一直报错, 具体错误信息现在已经忘了,后来看了官网的prerequisite,才知道要安装特定版本或greater 的 phantomjs 和 Python.我这边主要是没装python. ...

  3. 2019智能手表推荐_智能手表一定越贵越好?试用过后这五款才真正值得推荐

    随着技术的进步,年轻人手上的普通腕表进化成了智能手表,虽说几年前智能手表产品还存在功能单一和续航太短等问题,然而,经过几年的发展迭代,智能手表技术不断革新,带给人们更好的使用体验,也有越来越多的人愿意 ...

  4. 卡巴循环30天不限次数循环试用工具

    本文需评论之后方可查看! @echo off @title 卡巴循环30天不限次数循环试用工具 @echo off echo 卡巴循环30天不限次数循环试用工具 echo. echo ======== ...

  5. Java Coverage(Cobertura)工具

    首先是下载Cobertura的jar包了,这个工具底层是JCoverage,熟悉Jcoverage的对这个也不会陌生的. Cobertura官网 http://cobertura.sourceforg ...

  6. 从试用到使用:计算机视觉产业新一轮发展的起步年

    参加 2018 AI开发者大会,请点击官网报名 CSDN 出品的<2018-2019 中国人工智能产业路线图>V2.0 版即将重磅面世! V1.0 版发布以来,我们有幸得到了诸多读者朋友及 ...

  7. 代码审查规范(试用版)

    目录 1.背景 2.目标 3.流程 4.指定代码审查规范 4.1.命名风格 4.2.常量定义 4.3.代码风格 4.4.注释风格 4.5.控制语句 5.执行代码审查规范 6.开展PR Bash活动 1 ...

  8. Proovread安装与试用

    proovread安装与试用 2018.12.04 19:52:21字数 204阅读 118 [TOC] 安装环境 Ubuntu18.10 Perl 5.10.1 or later Log::Log4 ...

  9. html阅读开放试用阶段,泰克为不同行业提供100种应用功能免费试用

    泰克在3月中旬开始推出的[泰克芯高度,视界大不同]系列线上活动,其中特别针对工程师推出几十种软件包的30天免费试用,每个软件可以单独开通.针对电源设计.汽车电子.无线信号.高速信号等多个行业,泰克开放 ...

最新文章

  1. Codeforces Round #535 (Div. 3)题解
  2. plsql如何连接oracle11g_PLSQL连接Oracle11G图文教程(含PLSQL配置文件)
  3. 3.Java中的关键字和注释
  4. C++中include 与 include 的区别
  5. Windows消息传递机制详解
  6. 转:TC35/TC35I/MC35I短信AT指令实例
  7. Kubernetes学习之路目录
  8. 如何高效检查一个数组中是否包含某个值?
  9. Atitit. 真正的全中国文字attilax易语言的特点以及范例
  10. FFmpeg源代码简单分析:日志输出系统(av_log()等)
  11. 企业信息化认知的四个误区
  12. JS 关于 this 指向的几种情况
  13. 热力图pycharm
  14. 月下夜想曲200.6(攻略3)
  15. iPhones刷机怎么备份微信记录 iPhone手机微信记录怎么备份
  16. bit feild and CPU endian 位域和大小端
  17. 100个精选Python实战项目案例,送给缺乏练手经验的你
  18. 剑指 Offer 41-50
  19. AD导出3D模型的各种方法——AD转SW(MCAD插件一键生成),也适用于Fusion360、Inventor等三维建模软件
  20. 结构化数据和非结构化数据的区别

热门文章

  1. Android子线程进度条不显示的问题
  2. 中澳科学家在量子安全通信领域合作研究取得突破性进展
  3. vsftpd更新和修改版本号教程
  4. 命令行登录防止MySQL密码泄露的几个小妙招。
  5. MYSQL数据库字符编码设置
  6. MongoDB的选举过程
  7. linux文件及文件夹权限
  8. 【计算几何】【极角序】【二分】bzoj1914 [Usaco2010 OPen]Triangle Counting 数三角形
  9. Ubuntu下挂载U盘
  10. 设置自动会计时,常数位置提示APP-FND-00804错误,解决方法