今天我们给大家分享,如何使用Jacoco集合Git来做增量代码的覆盖率测试。实现的基本原理是:
- 使用Git的diff指令,计算出两个版本的差异;
- 改造Jacoco源代码,只针对增量代码生成报告。
基本的功能滴滴的super-jacoco项目已经实现,并把它分装成了一个服务。大家可以基于这个开源项目进行二次开发,本文我们给大家介绍它的工作方式。
如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以加裙485187702,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。
- 从官网下载、安装Oracle Java SDK。执行java -version,可输出版本信息表示安装成功。笔者这里安装的是JDK 11;
- 从这里下载解压Apache Maven构建工具3.9.1版,并将其加入系统PATH环境变量。成功后执行mvn -v,可正确返回版本信息;
- 安装、启动MySQL数据库,可以从这里下载免费的社区版;
-
执行Git克隆命令,获取项目源代码;
git clone https://github.com/didi/super-jacoco.git
-
打开项目src/main/resources目录下的application.properties文件,修改MySQL数据库连接地址、账号和密码;
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/super-jacoco?useUnicode=true&characterEncoding=utf8 spring.datasource.username=user spring.datasource.password=P2ssw0rd
- 执行maven命令,编译jar包;
mvn package -Dmaven.test.skip=true
- 启动编译好的服务jar包;
java -jar super-jacoco.jar
- 如果是使用的IDE,可通过右键CodeCovApplication.java文件启动服务;
- 服务启动成功后,会执行一个定时任务来扫描数据库,以查找是否有覆盖率统计的任务需要执行,日志类似下图;
- 使用PostMan或命令行工具,发送“新建覆盖率统计任务”的请求。请确保参数uuid唯一,成功后返回code 200;
地址:http://127.0.0.1:8899/cov/triggerUnitCover 方法:POST 数据: { "uuid": "uuid001", "type": 1, "gitUrl": "https://gitee.com/ngtesting/ci_test_jcoco.git", "subModule": "", "baseVersion": "v1", "nowVersion": "v2", "envType": "-Ptest" }
- 稍等片刻,会发现控制台中有发现并执行任务的日志;
- 任务执行完成后,发送“获取覆盖率报告”的请求到服务;
- 在浏览器中打开返回的报告地址,得到以下页面。
- 此处为撰写本文时,可成功运行的被测项目。
最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】
软件测试面试小程序
被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!
8小时传疯!大厂面试真题全被大佬整理在这个小程序上了!【软件测试,建议收藏】
涵盖以下这些面试题板块:
1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux
6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础