Jacoco覆盖率信息收集1

本文介绍如何利用Jacoco工具进行代码覆盖率信息的收集,从项目中获取详细的数据,以便于生成报告。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当开始生成报告,首先是进行覆盖率信息的收集,进入ReportTask类中进行

Buildfile: E:\Jacoco\build-.xml
clean:
   [delete] Deleting directory E:\Jacoco\target
compile:
    [mkdir] Created dir: E:\Jacoco\target\classes
    [javac] Compiling 2 source files to E:\Jacoco\target\classes
test:
[jacoco:coverage] Enhancing java with coverage
     [java] i!=1
report:
[jacoco:report] Loading execution data file E:\Jacoco\target\jacoco.exec
[jacoco:report] CounterImpl static 
//初始化CounterImpl,很多
[jacoco:report] 构造函数CounterImpl(final int missed, final int covered) 0  0
[jacoco:report]  CounterImpl Fix构造函数0   0
[jacoco:report] 构造函数CounterImpl(final int missed, final int covered) 0  1
[jacoco:report]  CounterImpl Fix构造函数0   1
//初始化CoverageNodeImpl
[jacoco:report] CoverageNodeImpl 构造函数
//进入createReport函数
[jacoco:report] createReport
//调用了createBundle函数
[jacoco:report] ReportTask createBundle
//开始对每一个class开始遍历计算覆盖率信息
[jacoco:report] ReportTask createBundle analyzer for
//Hello类
[jacoco:report] CoverageNodeImpl 构造函数
[jacoco:report] CoverageNodeImpl getName    Hello
[jacoco:report] CoverageNodeImpl getName    Hello
//进入第一个构造函数
[jacoco:report] MethodAnalyzer MethodName:<init>
[jacoco:report] CoverageNodeImpl 构造函数
[jacoco:report] MethodAnalyzer accept
[jacoco:report] MethodAnalyzer visitLabel
[jacoco:report] MethodAnalyzer visitLineNumber4
[jacoco:report] MethodAnalyzer visitVarInsn:    opcode25var0
[jacoco:report] MethodAnalyzer 自带visitInsn:org.jacoco.core.internal.flow.Instruction@245b4bdc
[jacoco:report] MethodAnalyzer visitMethodInsn:opcode, owner,name, desc183  java/lang/Object    <init>  ()V
[jacoco:report] MethodAnalyzer 自带visitInsn:org.jacoco.core.internal.flow.Instruction@6c64cb25
[jacoco:report] MethodAnalyzer visitProbe:
[jacoco:report] MethodAnalyzer addProbe
[jacoco:report] MethodAnalyzer visitLabel
[jacoco:report] MethodAnalyzer visitLineNumber5
[jacoco:report] MethodAnalyzer visitMethodInsn:opcode, owner,name, desc184  java/lang/Math  random  ()D
[jacoco:report] MethodAnalyzer 自带visitInsn:org.jacoco.core.internal.flow.Instruction@222545dc
[jacoco:report] MethodAnalyzer visitLdcInsn:object100.0
[jacoco:report] MethodAnalyzer 自带visitInsn:org.jacoco.core.internal.flow.Instruction@5c5eefef
[jacoco:report] MethodAnalyzer visitInsn:107
[jacoco:report] MethodAnalyzer 自带visitInsn:org.jacoco.core.internal.flow.Instruction@16293aa2
[jacoco:report] MethodAnalyzer visitInsn:142
[jacoco:report] MethodAnalyzer 自带visitInsn:org.jacoco.core.internal.flow.Instruction@5158b42f
[jacoco:report] MethodAnalyzer visitVarInsn:    opcode54var1
[jacoco:report] MethodAnalyzer 自带visitInsn:org.jacoco.core.internal.flow.Instruction@595b007d
[jacoco:report] MethodAnalyzer visitProbe:
[jacoco:report] MethodAnalyzer addProbe
[jacoco:report] MethodAnalyzer visitLabel
[jacoco:report] MethodAnalyzer visitLineNumber6
[jacoco:report] MethodAnalyzer visitVarInsn:    opcode25var0
[jacoco:report] MethodAnalyzer 自带visitInsn:org.jacoco.core.internal.flow.Instruction@2d7275fc
[jacoco:report] MethodAnalyzer visitVarInsn:    opcode21var1
[jacoco:report] MethodAnalyzer 自带visitInsn:org.jacoco.core.internal.flow.Instruction@399f45b1
[jacoco:report] MethodAnalyzer visitMethodInsn:opcode, owner,name, desc182  Hello   testGoto    (I)V
[jacoco:report] MethodAnalyzer 自带visitInsn:org.jacoco.core.internal.flow.Instruction@38c6f217
[jacoco:report] MethodAnalyzer visitLabel
[jacoco:report] MethodAnalyzer visitLineNumber7
[jacoco:report] MethodAnalyzer visitInsnWithProbe:
[jacoco:report] MethodAnalyzer 自带visitInsn:org.jacoco.core.internal.flow.Instruction@478190fc
[jacoco:report] MethodAnalyzer addProbe
[jacoco:report] MethodAnalyzer visitLabel
[jacoco:report] MethodAnalyzer visitEnd:
//分析完毕,进入每一个指令的分析
[jacoco:report] MethodAnalyzer i.getBranches(): 1
[jacoco:report] MethodAnalyzer i.getCoveredBranches():  1
[jacoco:report] SourceNodeImpl increment (ICounter instructions, ICounter branches,int line)
[jacoco:report] SourceNodeImpl  line != UNKNOWN_LINE
[jacoco:report] SourceNodeImpl incrementLine
[jacoco:report] SourceNodeImpl  ensureCapacity else
[jacoco:report] SourceNodeImpl getFirstLine 4
[jacoco:report] SourceNodeImpl getLastLine  
[jacoco:report] SourceNodeImpl getLine  4
[jacoco:report] SourceNodeImpl getFirstLine 4
[jacoco:report] SourceNodeImpl getLastLine  
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report]  CounterImpl getInstance SINGLETONS[][]00
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report]  CounterImpl getInstance SINGLETONS[][]00
[jacoco:report] LineImpl 初始化函数
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report]  CounterImpl getInstance SINGLETONS[][]00
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report]  CounterImpl getInstance SINGLETONS[][]01
//初始化LineImpl,很多,省略(因为是第一次)
[jacoco:report] LineImpl ICounter getInstructionCounter()
[jacoco:report] CounterImpl getTotalCount   0
[jacoco:report] LineImpl ICounter getInstructionCounter()
[jacoco:report] CounterImpl getCoveredCount 0
[jacoco:report] LineImpl Fix increment
[jacoco:report] CounterImpl increment(final ICounter counter) 
[jacoco:report] CounterImpl getMissedCount  0
[jacoco:report] CounterImpl getCoveredCount 1
[jacoco:report]  CounterImpl Fix increment missed+covered01
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report]  CounterImpl getInstance SINGLETONS[][]01
[jacoco:report] CounterImpl increment(final ICounter counter) 
[jacoco:report] CounterImpl getMissedCount  0
[jacoco:report] CounterImpl getCoveredCount 0
[jacoco:report]  CounterImpl Fix increment missed+covered00
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report]  CounterImpl getInstance SINGLETONS[][]00
[jacoco:report] LineImpl getInstance
[jacoco:report] CounterImpl getMissedCount  0
[jacoco:report] CounterImpl getCoveredCount 1
[jacoco:report] CounterImpl getMissedCount  0
[jacoco:report] CounterImpl getCoveredCount 0
[jacoco:report] CounterImpl getTotalCount   1
[jacoco:report] CounterImpl getCoveredCount 1
[jacoco:report] 22
[jacoco:report] CounterImpl increment(final ICounter counter) 
[jacoco:report] CounterImpl getMissedCount  0
[jacoco:report] CounterImpl getCoveredCount 1
[jacoco:report]  CounterImpl Fix increment missed+covered01
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report]  CounterImpl getInstance SINGLETONS[][]01
[jacoco:report] SourceNodeImpl  instructionCounter.increment(instructions)
[jacoco:report] CounterImpl increment(final ICounter counter) 
[jacoco:report] CounterImpl getMissedCount  0
[jacoco:report] CounterImpl getCoveredCount 1
[jacoco:report]  CounterImpl Fix increment missed+covered01
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report]  CounterImpl getInstance SINGLETONS[][]01
[jacoco:report] SourceNodeImpl  branchCounter.increment(branches)
[jacoco:report] CounterImpl increment(final ICounter counter) 
[jacoco:report] CounterImpl getMissedCount  0
[jacoco:report] CounterImpl getCoveredCount 0
[jacoco:report]  CounterImpl Fix increment missed+covered00
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report]  CounterImpl getInstance SINGLETONS[][]00
[jacoco:report] CounterImpl getTotalCount   0
//下一个指令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值