共计 1026 个字符,预计需要花费 3 分钟才能阅读完成。
本文由 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/jacoco
cd jacoco
执行剖析
通过 docker
docker run --rm -v `pwd`:/usr/src/app williamfzc/linkediff:v0.2.1 linkediff run
惯例形式
你须要装置 Python3 及 coca。
pip3 install linkediff
linkediff 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 在线交换。
想要学习更多对于测试 / 测试开发技术、测试治理和品质保障的干货常识?
想要结识品质行业大牛和业界精英?
欢送关注第十届中国互联网测试开发大会·深圳站 >>