本文由williamfzc发表于TesterHome论坛,点击原文链接可查看作者的更多文章并与ta在线交换。
背景与成果
在研发流程中无论是 code review、MR 根本都绕不开 code diff 的存在,而人眼很难精确评估 diff 的影响规模。
linkediff 能够在无需编译的状况下对你的代码进行解析,指出diff的影响范畴:
通过脑图能够看到:
- 对 UTGen.java 产生了三块变更
- 64-216行这块影响了 methodsToCases 办法
- 这个办法调用了近40个办法,并被2个办法调用
他同时也生成易解决的JSON文件便于与其余零碎(如CI)配合。
应用
以后只反对java我的项目。
进入你本人的工程
git clone https://github.com/jacoco/jacococd jacoco
执行剖析
通过docker
docker run --rm -v `pwd`:/usr/src/app williamfzc/linkediff:v0.2.1 linkediff run
惯例形式
你须要装置 Python3 及 coca。
pip3 install linkedifflinkediff init
你会在你的我的项目目录下看到 .linkediff.json
配置文件,将其中 coca_cmd 指向 coca可执行文件 的门路即可。
linkediff run
后果
在运行实现后你能够看到一些后果文件,如 ldresult.json
, ldresult.xmind
。联合本身须要进一步解决即可。
设计与探讨
智能diff性能存在我的TODO里很久了,之前的设计是:
- tree-sitter(这里选型有很多) 转 ast graph
- ast graph -> 更高层级的、通用 graph
- raw diff 生成
- 代入 graph 抠出整条调用上下游
而起初偶尔发现了 coca ,发现曾经将第二步与第四步实现了。所以趁着休息日摸鱼把这个最小可体验版本写(拼)进去了。
这个版本可能只会被用于验证价值与试水,如果有肯定应用场景再思考具体选型与适配。以后版本自在参加,构造也非常简单,欢送PR但请不要破费太多工夫。欢送各类倡议。
我的项目地址
https://github.com/williamfzc...
本文由williamfzc发表于TesterHome论坛,点击原文链接可查看作者的更多文章并与ta在线交换。
想要学习更多对于测试/测试开发技术、测试治理和品质保障的干货常识?
想要结识品质行业大牛和业界精英?
欢送关注第十届中国互联网测试开发大会·深圳站 >>