美文网首页
Android端Jacoco实践

Android端Jacoco实践

作者: BooQin | 来源:发表于2022-03-08 19:53 被阅读0次

    Jacoco

    • 原理
    • Android中的使用
    • 商家端实践

    原理

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

    • 代码覆盖率
    • Jacoco模式
    • 探针

    模式

    implementation.png
    • on the fly
    • offline

    探针的数据结构

    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)如果节点已经被执行且节点是一个边缘的目标节点,则我们知道已经访问了该边。

    • 每一个方法的出口(return throw)
    • 边的目标指令包含多条边
    jacoco4.png
    ALOAD    probearray
    xPUSH    probeid
    ICONST_1
    BASTORE
    

    增量的实现

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

    Android中的使用

    jacoco5.png

    jacoco

    商家端实践

    TODO

    • diff方案
    • 后端改造,部署到云上

    相关文章

      网友评论

          本文标题:Android端Jacoco实践

          本文链接:https://www.haomeiwen.com/subject/rizarrtx.html