当一个函数的信息收集完毕,如何将其MethodCoverageImpl
添加到类信息中ClassCoverageImpl
中
//指令for循环完毕,执行MethodAnalyzer coverage.incrementMethodCounter();
[jacoco:report] MethodCoverageImpl incrementMethodCounter
//计算getCoveredcoune 不等于0,说明该函数有指令被执行,设置base=CounterImpl.COUNTER_0_1
[jacoco:report] CounterImpl getCoveredCount 7
//根据base对methodCounter增量(原来是00)
[jacoco:report] MethodCoverageImpl incrementMethodCounter methodCounter
[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
//对complexityCounter,进行增量
[jacoco:report] MethodCoverageImpl incrementMethodCounter complexityCounter
[jacoco:report] CounterImpl increment(final ICounter counter)
//传递过来的是01
[jacoco:report] CounterImpl getMissedCount 0
[jacoco:report] CounterImpl getCoveredCount 1
[jacoco:report] CounterImpl Fix increment missed+covered01
[jacoco:report] CounterImpl getInstance missed covered
//原来是10,之前有个if判断,所以现在变成了11
[jacoco:report] CounterImpl getInstance SINGLETONS[][]11
//MethodAnalyzerz执行完毕,下面回到ClassaAnalyzer中
//回到visitMethod中,if (methodCoverage.getInstructionCounter().getTotalCount() > 0) 判断调用
[jacoco:report] ClassAnalyzer getCoverage
[jacoco:report] MethodAnalyzer getCoverage
//下面进入ClassCoverageImpl中addMethod(final IMethodCoverage method)函数
//其increment(method)调用SourceNodeImpl中increment(final ISourceNode child)函数
//在SourceNodeImpl中
//下面对各个counter进行increment
//getInstructionCounter
[jacoco:report] CoverageNodeImpl getInstructionCounter
[jacoco:report] CounterImpl getTotalCount 11
[jacoco:report] ClassAnalyzer coverage.addMethod
[jacoco:report] ClassCoverageImpl addMethod
[jacoco:report] SourceNodeImpl iincrement(final ISourceNode child)
[jacoco:report] CoverageNodeImpl getInstructionCounter
[jacoco:report] CounterImpl increment(final ICounter counter)
[jacoco:report] CounterImpl getMissedCount 4
[jacoco:report] CounterImpl getCoveredCount 7
[jacoco:report] CounterImpl Fix increment missed+covered47
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report] CounterImpl getInstance SINGLETONS[][]418
//getBranchCounter
[jacoco:report] CoverageNodeImpl getBranchCounter
[jacoco:report] CounterImpl increment(final ICounter counter)
[jacoco:report] CounterImpl getMissedCount 1
[jacoco:report] CounterImpl getCoveredCount 1
[jacoco:report] CounterImpl Fix increment missed+covered11
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report] CounterImpl getInstance SINGLETONS[][]11
//getComplexityCounter
[jacoco:report] CoverageNodeImpl getComplexityCounter
[jacoco:report] CounterImpl increment(final ICounter counter)
[jacoco:report] CounterImpl getMissedCount 1
[jacoco:report] CounterImpl getCoveredCount 1
[jacoco:report] CounterImpl Fix increment missed+covered11
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report] CounterImpl getInstance SINGLETONS[][]12
//getMethodCounter
[jacoco:report] CoverageNodeImpl getMethodCounter
[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[][]02
//getClassCounter
[jacoco:report] CoverageNodeImpl getClassCounter
[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[][]01
//下面是if判断
//判断firstLine != UNKNOWN_LINE
[jacoco:report] SourceNodeImpl getFirstLine 11
[jacoco:report] SourceNodeImpl iincrement(final ISourceNode child) firstLine != UNKNOWN_LINE
[jacoco:report] SourceNodeImpl getLastLine
//进入ensureCapacity,更新行数
[jacoco:report] SourceNodeImpl ensureCapacity else
[jacoco:report] SourceNodeImpl getFirstLine 4
[jacoco:report] SourceNodeImpl getLastLine
//进入if (newLength > lines.length)
[jacoco:report] SourceNodeImpl ensureCapacity 更新lines长度
//ensureCapacity函数执行结束
//其实这个child应该是MethodCoverageImpl
//为每一行分别进行increment
[jacoco:report] SourceNodeImpl iincrement(final ISourceNode child) for
[jacoco:report] SourceNodeImpl getLine 11
[jacoco:report] SourceNodeImpl getFirstLine 11
[jacoco:report] SourceNodeImpl getLastLine
[jacoco:report] LineImpl ICounter getInstructionCounter()
[jacoco:report] LineImpl ICounter getBranchCounter()
[jacoco:report] SourceNodeImpl incrementLine
[jacoco:report] SourceNodeImpl ensureCapacity else
[jacoco:report] SourceNodeImpl getFirstLine 4
[jacoco:report] SourceNodeImpl getLastLine
[jacoco:report] SourceNodeImpl getLine 11
[jacoco:report] SourceNodeImpl getFirstLine 4
[jacoco:report] SourceNodeImpl getLastLine
[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 3
[jacoco:report] CounterImpl Fix increment missed+covered03
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report] CounterImpl getInstance SINGLETONS[][]03
[jacoco:report] CounterImpl increment(final ICounter counter)
[jacoco:report] CounterImpl getMissedCount 1
[jacoco:report] CounterImpl getCoveredCount 1
[jacoco:report] CounterImpl Fix increment missed+covered11
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report] CounterImpl getInstance SINGLETONS[][]11
[jacoco:report] LineImpl getInstance
[jacoco:report] CounterImpl getMissedCount 0
[jacoco:report] CounterImpl getCoveredCount 3
[jacoco:report] CounterImpl getMissedCount 1
[jacoco:report] CounterImpl getCoveredCount 1
[jacoco:report] CounterImpl getTotalCount 3
[jacoco:report] CounterImpl getCoveredCount 3
[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[][]05
[jacoco:report] SourceNodeImpl iincrement(final ISourceNode child) for
[jacoco:report] SourceNodeImpl getLine 12
[jacoco:report] SourceNodeImpl getFirstLine 11
[jacoco:report] SourceNodeImpl getLastLine
[jacoco:report] LineImpl ICounter getInstructionCounter()
[jacoco:report] LineImpl ICounter getBranchCounter()
[jacoco:report] SourceNodeImpl incrementLine
[jacoco:report] SourceNodeImpl ensureCapacity else
[jacoco:report] SourceNodeImpl getFirstLine 4
[jacoco:report] SourceNodeImpl getLastLine
[jacoco:report] SourceNodeImpl getLine 12
[jacoco:report] SourceNodeImpl getFirstLine 4
[jacoco:report] SourceNodeImpl getLastLine
[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 4
[jacoco:report] CounterImpl getCoveredCount 0
[jacoco:report] CounterImpl Fix increment missed+covered40
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report] CounterImpl getInstance SINGLETONS[][]40
[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 4
[jacoco:report] CounterImpl getCoveredCount 0
[jacoco:report] CounterImpl getMissedCount 0
[jacoco:report] CounterImpl getCoveredCount 0
[jacoco:report] CounterImpl getTotalCount 4
[jacoco:report] CounterImpl getCoveredCount 0
[jacoco:report] 11
[jacoco:report] CounterImpl increment(final ICounter counter)
[jacoco:report] CounterImpl getMissedCount 1
[jacoco:report] CounterImpl getCoveredCount 0
[jacoco:report] CounterImpl Fix increment missed+covered10
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report] CounterImpl getInstance SINGLETONS[][]15
[jacoco:report] SourceNodeImpl iincrement(final ISourceNode child) for
[jacoco:report] SourceNodeImpl getLine 13
[jacoco:report] SourceNodeImpl getFirstLine 11
[jacoco:report] SourceNodeImpl getLastLine
[jacoco:report] LineImpl ICounter getInstructionCounter()
[jacoco:report] LineImpl ICounter getBranchCounter()
[jacoco:report] SourceNodeImpl incrementLine
[jacoco:report] SourceNodeImpl ensureCapacity else
[jacoco:report] SourceNodeImpl getFirstLine 4
[jacoco:report] SourceNodeImpl getLastLine
[jacoco:report] SourceNodeImpl getLine 13
[jacoco:report] SourceNodeImpl getFirstLine 4
[jacoco:report] SourceNodeImpl getLastLine
[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 0
[jacoco:report] CounterImpl Fix increment missed+covered00
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report] CounterImpl getInstance SINGLETONS[][]00
[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 0
[jacoco:report] CounterImpl getMissedCount 0
[jacoco:report] CounterImpl getCoveredCount 0
[jacoco:report] CounterImpl getTotalCount 0
[jacoco:report] SourceNodeImpl iincrement(final ISourceNode child) for
[jacoco:report] SourceNodeImpl getLine 14
[jacoco:report] SourceNodeImpl getFirstLine 11
[jacoco:report] SourceNodeImpl getLastLine
[jacoco:report] LineImpl ICounter getInstructionCounter()
[jacoco:report] LineImpl ICounter getBranchCounter()
[jacoco:report] SourceNodeImpl incrementLine
[jacoco:report] SourceNodeImpl ensureCapacity else
[jacoco:report] SourceNodeImpl getFirstLine 4
[jacoco:report] SourceNodeImpl getLastLine
[jacoco:report] SourceNodeImpl getLine 14
[jacoco:report] SourceNodeImpl getFirstLine 4
[jacoco:report] SourceNodeImpl getLastLine
[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 3
[jacoco:report] CounterImpl Fix increment missed+covered03
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report] CounterImpl getInstance SINGLETONS[][]03
[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 3
[jacoco:report] CounterImpl getMissedCount 0
[jacoco:report] CounterImpl getCoveredCount 0
[jacoco:report] CounterImpl getTotalCount 3
[jacoco:report] CounterImpl getCoveredCount 3
[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[][]16
[jacoco:report] SourceNodeImpl iincrement(final ISourceNode child) for
[jacoco:report] SourceNodeImpl getLine 15
[jacoco:report] SourceNodeImpl getFirstLine 11
[jacoco:report] SourceNodeImpl getLastLine
[jacoco:report] LineImpl ICounter getInstructionCounter()
[jacoco:report] LineImpl ICounter getBranchCounter()
[jacoco:report] SourceNodeImpl incrementLine
[jacoco:report] SourceNodeImpl ensureCapacity else
[jacoco:report] SourceNodeImpl getFirstLine 4
[jacoco:report] SourceNodeImpl getLastLine
[jacoco:report] SourceNodeImpl getLine 15
[jacoco:report] SourceNodeImpl getFirstLine 4
[jacoco:report] SourceNodeImpl getLastLine
[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 0
[jacoco:report] CounterImpl Fix increment missed+covered00
[jacoco:report] CounterImpl getInstance missed covered
[jacoco:report] CounterImpl getInstance SINGLETONS[][]00
[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 0
[jacoco:report] CounterImpl getMissedCount 0
[jacoco:report] CounterImpl getCoveredCount 0
[jacoco:report] CounterImpl getTotalCount 0
[jacoco:report] SourceNodeImpl iincrement(final ISourceNode child) for
[jacoco:report] SourceNodeImpl getLine 16
[jacoco:report] SourceNodeImpl getFirstLine 11
[jacoco:report] SourceNodeImpl getLastLine
[jacoco:report] LineImpl ICounter getInstructionCounter()
[jacoco:report] LineImpl ICounter getBranchCounter()
[jacoco:report] SourceNodeImpl incrementLine
[jacoco:report] SourceNodeImpl ensureCapacity else
[jacoco:report] SourceNodeImpl getFirstLine 4
[jacoco:report] SourceNodeImpl getLastLine
[jacoco:report] SourceNodeImpl getLine 16
[jacoco:report] SourceNodeImpl getFirstLine 4
[jacoco:report] SourceNodeImpl getLastLine
[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[][]17
[jacoco:report] CounterImpl getCoveredCount 2
//整个执行结束,返回ClassCoverageImpl中addMethod函数