Jacoco+Eclipse简单操作
来源:互联网 发布:导航网源码 搜索引擎 编辑:程序博客网 时间:2024/06/08 08:48
概念
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->选择需要生成报告的测试源以及目标地址
- Jacoco+Eclipse简单操作
- Jacoco+Eclipse简单操作
- eclipse ant jacoco
- java操作jacoco
- Jacoco
- Jacoco
- JaCoCo在Eclipse、Maven中的使用
- 简单Eclipse操作(一)
- Eclipse的debug简单操作
- MYSQL简单操作(eclipse)
- JAVA代码覆盖率工具JaCoCo-原理简单分析
- 【Eclipse中的 Git插件使用】简单操作
- jacoco offline
- 在eclipse中对hadoop集群文件的简单操作
- Eclipse操作
- Eclipse 操作
- Jacoco覆盖率工具使用
- Android测试 ---- Espresso + Jacoco
- Maven学习(一) 搭建Maven环境
- 从两个文件(各含50亿个url)中找出共同的url
- 从高考到程序员
- Windows+Sublime Text3配置Lua开发环境的图文详细步骤
- Core ML 与 Vision:iOS 11 机器学习教程
- Jacoco+Eclipse简单操作
- WebAPP对NativeApp的优缺点
- 《软技能—代码之外的生存指南》读书笔记之一:职业
- java调用微信sdk图片选择上传保存到七牛
- 单KEY业务,数据库水平切分架构实践
- hbase集群搭建
- 测试
- 攻破JAVA NIO技术壁垒
- iOS 11:几点值得关注的 UIKit 改进