jacoco - API代码覆盖率的Jacoco集成测试
问题描述
Jacoco 是否为 API 的集成测试提供代码覆盖率?也就是说,我有一个在本地运行的应用程序实例,并且我进行了集成测试,其中我点击了正在运行的应用程序实例提供的 api。在这种情况下,我可以使用 Jacoco 来获取运行集成测试时覆盖了多少行正在运行的应用程序实例?
我已经尝试过 Jacoco 的 maven 插件的 prepare-agent-integration 和 report-integration 目标。但是他们将代码覆盖率设为 0。我认为这是因为 jacoco 仅测量当前运行的实例的代码覆盖率,而不是其 api 被命中的实例。
解决方案
我在运行服务时忘记运行 javaagent。使用 javaagent 和 output=tcpserver 运行 jar 文件,然后使用 Jacoco:dump 转储执行文件并使用 Jacoco:report 创建报告解决了这个问题。
java -javaagent:<path_to_agent>/org.jacoco.agent-0.7.9-runtime.jar=output=tcpserver,address=127.0.0.1 -jar myapp.jar
mvn clean verify -Pintegration-tests
mvn jacoco:report -DdataFile=./target/jacoco.exec
mvn jacoco:dump -Djacoco.address=localhost -Djacoco.destFile=./service/target/jacoco.exec
推荐阅读
- nftables - nftables:覆盖默认配置文件
- opencv - 读取 OpenCV FOURCC 代码 int 到 char 转换
- javascript - 在移动浏览器中使用 go 键跳过 HTML“日期”输入
- python - 在 Python 中对 2 个数组进行 t 测试时获取数组而不是数字
- function - 参数类型“Function”不能分配给参数类型“void Function(bool?)?”。空对象
- javascript - JavaScript 中模块的执行上下文是什么?如何在浏览器的控制台中显式访问它?
- python - 通过 SQL Server 代理作业在 Conda 中使用 Numpy 运行 python 脚本
- sql - 来自 SQL 源的 BIT 列由数据收集器转换为布尔值
- css - Material-UI Grid - 自动堆叠项目以占用最小垂直空间
- pandas - Pandas - 在不复制数据的情况下计算行数