jacoco + eclipse单元测试覆盖率

概念

Jacoco:JaCoCo是一个开源的覆盖率工具,它针对的开发语言是java,其使用方法很灵活,可以嵌入到Ant、Maven中;可以作为Eclipse插件,可以使用其JavaAgent技术监控Java程序等等。 
插桩:程序插桩,它是在保证被测程序原有逻辑完整性的基础上在程序中插入一些探针(又称为“探测仪”,本质上就是进行信息采集的代码段,可以是赋值语句或采集覆盖信息的函数调用),通过探针的执行并抛出程序运行的特征数据,通过对这些数据的分析,可以获得程序的控制流和数据流信息,进而得到逻辑覆盖等动态信息,从而实现测试目的的方法。 
On-the-fly插桩:JVM中通过-javaagent参数指定特定的jar文件启动Instrumentation的代理程序,代理程序在通过Class Loader装载一个class前判断是否转换修改class文件,将统计代码插入class,测试覆盖率分析可以在JVM执行测试代码的过程中完成。 
Offline模式:在测试前先对文件进行插桩,然后生成插过桩的class或jar包,测试插过桩 的class和jar包后,会生成动态覆盖信息到文件,最后统一对覆盖信息进行处理,并生成报告。

注入方法

比较有特色的几个方法: 
Instrumentation 注入 
Byte Code 字节码注入(在Byte Code时使用的ASM技术修改字节码方法,可以修改Jar文件、class文件字节码文件,通过一个Probe探针的方式来注入,程序执行后可以被记录,它不会改变原有代码的行为) 
On-the-fly 在线模式 
Offline 离线模式

Eclipse EclEmma Plugin

目前支持的启动类型:

Local Java application java程序(有main) 
Eclipse/RCP application 桌面应用程序 
Equinox OSGi framework 
JUnit test 单元测试 
TestNG test 
JUnit plug-in test 
JUnit RAP test 
SWTBot test 
Scala application

安装

Eclipse:Help->Eclipse Marketplace->搜索EclEmma 

java application覆盖测试

点击工具栏中的按钮(在此之前可能需要自己先运行一遍代码)。测试结果如下: 
 
红色:测试未覆盖 
黄色:测试部分覆盖(通常是if和switch) 
绿色:测试已覆盖 
查看测试率,Window->Show View->Other->Java->Coverage 

通常情况下,Coverage显示的是单次的覆盖测试结果,如果想常看多次的合并结果,点击 

Project Explorer中查看覆盖率,Window->Preferences->General->Appearence->Label Decorations,选中Java Code Coverage。 

JUnit Test覆盖测试

右键一个需要测试的文件,new->JUnit->JUnit Test Case,完成一个测试类。选择测试类启动覆盖测试。结果如图: 
 

生成覆盖率报告

File->Export->Java->Coverage Report->选择需要生成报告的测试源以及目标地址

原文地址:http://blog.csdn.net/myfwjy/article/details/73603286

原文地址:https://www.cnblogs.com/wangzhengyu/p/8549248.html

时间: 2024-11-08 19:48:56

jacoco + eclipse单元测试覆盖率的相关文章

Android-jacoco代码覆盖率:单元测试覆盖率+功能测试覆盖率

参考:https://docs.gradle.org/current/dsl/org.gradle.testing.jacoco.tasks.JacocoCoverageVerification.html gradle库下载:https://maven.aliyun.com/mvn/view 案例参考来源:https://www.jianshu.com/p/1a4a81f09526 https://www.jianshu.com/p/1a4a81f09526 其他:https://testerh

[转载] JaCoCo:分析单元测试覆盖率的利器

转载自http://www.ibm.com/developerworks/cn/java/j-lo-jacoco/和http://www.cnblogs.com/chenfengmugu/p/4937257.html 本文主要介绍了如何使用 JaCoCo 分析 Java 项目的单元测试覆盖率,同时介绍了如何在 Eclipse 中安装和使用 EclEMMA,让开发人员可以直观地看到单元测试的覆盖情况. 前言 随着敏捷开发的流行,编写单元测试已经成为业界共识.但如何来衡量单元测试的质量呢?有些管理者

jenkins + jacoco 单元测试覆盖率

1.新建一个maven工程,在src/main/java 下建一个CoverageTest.java 类 package test_junit; public class CoverageTest { public CoverageTest() { // TODO Auto-generated constructor stub } public static void main(String[] args) { // TODO Auto-generated method stub } publi

使用JaCoCo统计单元测试代码覆盖率

1 JaCoCo介绍 JaCoCo是EclEmma团队基于多年覆盖率库使用经验总结而研发的一个开源的Java代码覆盖率库. 2 Maven单模块接入 在工程的pom.xml文件中添加如下内容: <build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>

EclEmma单元测试覆盖率统计插件

EclEmma是Eclipse里的一个插件,安装简单,覆盖率显示直观.安装EclEmma.打开Eclipse,点击Help → Intall New SofaWare → Work with 输入 http://update.eclemma.org/  回车 点击完成结束配置,并开始下载安装插件,安装结束后Eclipse通常会提醒你重新启动Eclipse选择确定.在重新打开的Eclipse工具栏里你就会看到这个代码覆盖测试工具Eclemma!  

Cobertura单元测试覆盖率实例

Cobertura 是一种开源工具,它通过检测基本的代码,并观察在测试包运行时执行了哪些代码和没有执行哪些代码,来测量测试覆盖率.除了找出未测试到的代码并发现 bug 外,Cobertura 还可以通过标记无用的.执行不到的代码来优化代码,还可以提供 API 实际操作的内部信息. Cobertura跟Maven完美结合,只需要在pom文件中增加一个插件即可: <plugin> <groupId>org.codehaus.mojo</groupId> <artifa

使用coverage工具统计python单元测试覆盖率

Coverage简介 Coverage是一种用于统计Python代码覆盖率的工具,通过它可以检测测试代码对被测代码的覆盖率如何.Coverage支持分支覆盖率统计,可以生成HTML/XML报告. 官方文档:http://coverage.readthedocs.org/en/latest/ 获取地址:http://pypi.python.org/pypi/coverage 也可以通过easy_install或pip安装:easy_install coverage. 安装后在Python27\Sc

单元测试覆盖率统计

参考http://www.cnblogs.com/turtle-fly/archive/2013/01/09/2851474.html 1.下载安装gcov/lcovgcov生成覆盖率数据lcov数据统计 2.编译gcc -g -pipe -m64 -fpic -DLINUX -fprofile-arcs -ftest-coverage 3.链接三条任选一个执行即可$ gcc --coverage$ gcc -lgcov$ gcc -fprofile-arcs 4.运行程序,会生成覆盖数据 5.

Android开发基础之Eclipse单元测试

假设已经实现了一个计算百分比功能需要测试,代码: public class ProgressService { public Integer getCurrentProgerss(double current, double max) { Integer i=(int)((current / max) * 100) ; return i; } } 要对指定功能进行单元测试,详细步骤如下: 一 测试类 编写一个测试类,来执行我们的功能,这个类需要继承AndroidTestCase. import