Jacoco收集覆盖率信息函数MethodAnalyzer分析1
来源:互联网 发布:python matplotlib曲线 编辑:程序博客网 时间:2024/06/05 06:51
jacoco收集覆盖率信息最小单元是在MethodAnalyzer
中进行分析,其对每一个指令进行判断,在visitend
后对每一个指令进行一系列的操作(在一个for循环中),下面通过log判断其对一直指令的执行过程。以iload_1
为例:
//该指令执行情况[jacoco:report] MethodAnalyzer i.getBranches(): 1[jacoco:report] MethodAnalyzer i.getCoveredBranches(): 1//首先进行line[jacoco:report] SourceNodeImpl increment (ICounter instructions, ICounter branches,int line)[jacoco:report] SourceNodeImpl line != UNKNOWN_LINE[jacoco:report] SourceNodeImpl incrementLine[jacoco:report] SourceNodeImpl getLine 11//incrementLine函数中 oldTotal和oldCovered时调用[jacoco:report] LineImpl ICounter getInstructionCounter()[jacoco:report] CounterImpl getTotalCount 0[jacoco:report] LineImpl ICounter getInstructionCounter()[jacoco:report] CounterImpl getCoveredCount 0//下一行line.crement()函数,进入LineLmpl//在abstract LineImpl increment函数后转入 Fix的increment里面[jacoco:report] LineImpl Fix increment//return 中,对instructions和branches,分别进入了CounterImple进行了增量[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//branch进行了增量[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//return参数增量完毕,进入getInstance函数[jacoco:report] LineImpl getInstance//函数中计算了下面的四种值,之后返回SourceNodeImpl[jacoco:report] CounterImpl getMissedCount 0[jacoco:report] CounterImpl getCoveredCount 1[jacoco:report] CounterImpl getMissedCount 0[jacoco:report] CounterImpl getCoveredCount 0//// Increment line counter: if判断时调用[jacoco:report] CounterImpl getTotalCount 1[jacoco:report] CounterImpl getCoveredCount 1[jacoco:report] 22 //此时认为是新行[jacoco:report] CounterImpl increment(final ICounter counter) //进入CounterImpl increment函数//return函数时,调用的,相当于参数[jacoco:report] CounterImpl getMissedCount 0[jacoco:report] CounterImpl getCoveredCount 1//return到了Fix类的increment函数[jacoco:report] CounterImpl Fix increment missed+covered01//进入getInstance函数[jacoco:report] CounterImpl getInstance missed covered//认为是SINGLETON,执行完毕,返回之前的SourceNodeImpl[jacoco:report] CounterImpl getInstance SINGLETONS[][]01//回到MethodAnalyzer最开始进入该类时位置,下面进行instructionCounter的increment[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//第二个 branchesCounter[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//该指令执行结束
阅读全文
0 0
- Jacoco收集覆盖率信息函数MethodAnalyzer分析1
- Jacoco覆盖率信息收集1
- Jacoco覆盖率信息收集2
- Jacoco覆盖率信息收集4-bundle之后
- Jacoco覆盖率信息收集-得到各个Counter信息
- Jacoco覆盖率信息收集3-class级向上
- JaCoCo:分析单元测试覆盖率的利器
- JaCoCo:分析单元测试覆盖率的利器
- JaCoCo:分析单元测试覆盖率的利器
- JaCoCo:分析单元测试覆盖率的利器
- Jacoco & Cobertura代码覆盖率分析对比
- Gradle 添加 Jacoco 分析单元测试覆盖率工具
- 简易覆盖率信息收集框架
- 通过jacoco检查自动化代码覆盖率和报告分析
- JAVA代码覆盖率工具JaCoCo-原理简单分析
- Jacoco覆盖率工具使用
- jacoco覆盖率计数器
- jacoco覆盖率统计分析
- 试卷题目验证1
- DEBUG | Unknown type name '__declspec'
- UI设计不仅仅是美工
- 四大法宝祝你面试成功
- 最短路径—Dijkstra算法和Floyd算法
- Jacoco收集覆盖率信息函数MethodAnalyzer分析1
- Restful注入参数
- C#基础(18)——List泛型集合、装箱、拆箱、字典集合与Hashtable区别
- 通过Pandas读取大文件
- 欢迎使用CSDN-markdown编辑器
- linux命令之mkdir
- Java注解
- 泛型和map集合
- No module named 'keras.datasets'; 'keras' is not a package