Android端Jacoco实践

2022-03-08  本文已影响0人  BooQin

Jacoco

原理

Jacoco是EclEmma团队开发的Java代码覆盖率的开源库

模式

implementation.png

探针的数据结构

public final class ExecutionData {

    private final long id;

    private final String name;

    private final boolean[] probes;

    ***
}

被执行的代码/测试的代码

foo(){
    int a = 1
}

foo(){
    int a = 1
    prob[0] = true
}

总结:

如果已经执行了探测,我们知道已经访问了相应的边缘,从这个边缘我们可以得出其他前面的节点和边:

(1)如果访问了边,我们知道该边的源节点已经被执行。

(2)如果节点已经被执行且节点是一个边缘的目标节点,则我们知道已经访问了该边。

jacoco4.png
ALOAD    probearray
xPUSH    probeid
ICONST_1
BASTORE

增量的实现

  1. 源文件获取diff
  2. class文件获取diff

Android中的使用

jacoco5.png

jacoco

商家端实践

TODO

上一篇下一篇

猜你喜欢

热点阅读