问答 如何使用 python 对 java 代码进行 jacoco 代码覆盖率测试

江南 · 2024年08月09日 · 最后由 Jerry li 回复于 2024年08月13日 · 8733 次阅读

全量代码覆盖率测试,很多资料
1、下载 Jacoco:首先,您需要从官网下载 Jacoco 的最新版本。
可以从 Jacoco 的官方网站([https://www.jacoco.orgJacoco 安装程序。(https://www.jacoco.org/jacoco))下载最新版本的

2、安装 Jacoco:解压缩下载的安装程序,执行插桩命令
Java -javaagent:D:\jacoco\jacoco-0.8.10\lib\jacocoagent.jar=includes=*,output=tcpserver,port=6300,
address=localhost,append=true -jar demo-0.0.1-SNAPSHOT.jar

D:\jacoco\jacoco-0.8.10\lib\jacocoagent.jar jacocoagent.jar 安装包的目录

demo-0.0.1-SNAPSHOT.jar 为项目的 jar 包

output=tcpserver 代表以 TCPserver 方式启动应用并进行插桩

port=6300 Jacoco 开启的 TCPserver 的端口

address=localhost 对外开发的 TCPserver 的访问地址。可以配置 127.0.0.1, 也可以配置为实际访问 IP

3、dump 生成覆盖率文件
java -jar D:\jacoco\jacoco-0.8.10\lib\jacococli.jar dump --address localhost --port 6300 --destfile D:\jacoco\jacoco_demo\target\jacoco.exec
4、生成 html
Java -jar D:\jacoco\jacoco-0.8.10\lib\jacococli.jar report ./jacoco.exec --classfiles .\cl

共收到 5 条回复 时间 点赞

这跟 python 有什么关系?

每种语言都有覆盖率统计工具。 主要看被统计的是什么语言开发的项目:

  • python 语言开发的项目: coverage
  • go 语言开发的项目: goc 、官方也有
  • java 语言开发的项目: jacoco
  • ...

覆盖率统计工具一般是需要在代码中插装的,不同语言插装方式,甚至统计方式也会有差异。 不存在一个工具可以做到所有语言的覆盖率统计。

如果有也一定要提供 相应语言的 插件。 类似 allure 的思路,之所以做到 不同语言、单元测试框架的支持,需要对不同的语言开发 相应的插件,使他们生成统一的测试结果的数据格式,然后,由 allure 解析展示。 --- 我这里 扯远了 。

Jerry li 回复

没有关系,只是希望去用 python 实现对覆盖率的统计,当然也可以用其他语言

虫师 回复

项目是 java 写的,熟悉 python,希望用 python 去统计 java 项目的增量代码覆盖率

江南 回复

问题是你这篇内容里面也没根 python 有任何关系啊?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册