Java 代码覆盖率 super-jacoco
项目流程
![](https://static001.geekbang.org/infoq/f7/f7971cfc617e5f6d19dd62b4056f57d6.png)
项目架构
![](https://static001.geekbang.org/infoq/1f/1f7e8dd66be1480ef2ddadd579188cc6.png)
部署步骤
注意:一定要用 Linux 服务器部署,不要用 Windows
准备 Linux 服务器环境
安装好 JDK1.8
安装好 git
安装和配置好 Maven3.6,或 3.6 以下
安装 MySQL 数据库(尽量不用 8 版本,就用 5.7、5.8 版本)
拉取 super-jacoco 开源项目
复制代码
初始化 MySQL
1、建立数据库:super-jacoco
2、建立数据表:执行 sql/db.sql 文件
![](https://static001.geekbang.org/infoq/82/8218248e1affc3798525500dcb28c66f.png)
3、修改 application.properties 文件中的数据库配置
复制代码
编译 super-jacoco 开源项目
生成 super-jacoco.jar
复制代码
部署 super-jacoco
1、进入 super-jacoco 项目,把 cli.jar 复制到用户主页
复制代码
![](https://static001.geekbang.org/infoq/cf/cf01f4329f53c75edd4cebb30619fb85.png)
![](https://static001.geekbang.org/infoq/46/468d03bcaef2de680b1e1ae5b2f3007c.png)
2、把 runtime.jar 传送到被测项目服务器的 jar 包位置
复制代码
![](https://static001.geekbang.org/infoq/5c/5c4bb3aa6e2b29a4aecb5c847edba934.png)
![](https://static001.geekbang.org/infoq/13/1311b2d774eba6473882fbd4884874ea.png)
3、启动 super-jacoco
复制代码
启动后的默认端口号为:8899
4、super-jacoco 服务器的防火墙规则自己设置
被测项目用 super-jacoco-runtime.jar 来启动
复制代码
附上 jacoco 启动参数
复制代码
使用覆盖率检测
启动覆盖率检测
准备一个不会重复的,没有使用过的 UUID
被测项目地址
被测项目上一次代码的版本 ID
被测项目目前代码的版本 ID
被测项目的地址
被测项目的 super-jacoco-runtime.jar 的端口(按照上面的启动参数就是:18513)
![](https://static001.geekbang.org/infoq/92/92bab57d144a0a269e23d2bfdb3e0ccd.png)
去被测项目进行测试,测试一段时间后,造成足够的代码覆盖
获取覆盖率收集
把启动覆盖率时的 UUID 拿来获取覆盖率
失败的场景
失败了也有日志文件
失败了的日志文件内容可能是空的,这种情况一般就是:下载项目代码后,编译失败了
![](https://static001.geekbang.org/infoq/39/3932246c1e8b533e52bdcb2fc49453d1.png)
成功的场景
![](https://static001.geekbang.org/infoq/8d/8da78ae0250e7382b8841e5d37f8ec51.png)
查看覆盖率报告
整个 Java 项目
![](https://static001.geekbang.org/infoq/4a/4a1e37251a149e149244d105748617ff.png)
Java 实现类列表
![](https://static001.geekbang.org/infoq/1a/1a3d5d25e6919520b061fffc308b28ae.png)
Java 实现类
![](https://static001.geekbang.org/infoq/51/5178dc9e07009a35b7ab8e4e282e4a65.png)
![](https://static001.geekbang.org/infoq/7d/7d0726fab0f6b22ae5a5109e71da6a3d.png)
覆盖分类
![](https://static001.geekbang.org/infoq/b0/b0d8794ecc02a5f67b152eb19bbd4969.png)
文章转载自:mua~mua~
评论