当开始生成报告,首先是进行覆盖率信息的收集,进入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
//下一个指令