我正在使用 JaCoCo 生成代码覆盖率报告,并且我有许多场景需要生成单独的报告。问题是该程序非常庞大,大约需要 2 分钟才能启动并加载所有类文件。
我想在其中一个场景完成后立即获取运行时的执行数据,然后开始下一个场景,而不是为每个场景重新启动服务器。
有办法这样做吗?
以下所有内容均摘自 JaCoCo 官方文档:http://www.jacoco.org/jacoco/trunk/doc/ http://www.jacoco.org/jacoco/trunk/doc/
Java 代理描述于http://www.jacoco.org/jacoco/trunk/doc/agent.html http://www.jacoco.org/jacoco/trunk/doc/agent.html有选择output
:
- file:VM 终止时,执行数据将写入 destfile 属性中指定的文件中。
-
TCP服务器:代理侦听地址和端口属性指定的 TCP 端口上的传入连接。执行数据为
写入此 TCP 连接。
-
TCP客户端:启动时,代理连接到由地址和端口属性指定的 TCP 端口。执行数据为
写入此 TCP 连接。
和选项jmx
:
如果设置为 true 代理会公开功能性 http://www.jacoco.org/jacoco/trunk/doc/api/org/jacoco/agent/rt/IAgent.html via JMX
通过 JavaDoc 中描述的 JMX 功能公开,提供了以下三种方法:
byte[] getExecutionData(boolean reset)
返回当前执行数据。
void dump(boolean reset)
通过配置的输出触发当前执行数据的转储。
void reset()
重置所有覆盖范围信息。
再次从文档中还有 Ant Taskdump
-
http://www.jacoco.org/jacoco/trunk/doc/ant.html http://www.jacoco.org/jacoco/trunk/doc/ant.html:
此任务允许从另一个 JVM 远程收集执行数据,而无需停止它。
远程转储对于长时间运行的 Java 进程(如应用程序服务器)非常有用。
dump
命令行界面中的命令 -http://www.jacoco.org/jacoco/trunk/doc/cli.html http://www.jacoco.org/jacoco/trunk/doc/cli.html
dump
目标jacoco-maven-plugin
- http://www.jacoco.org/jacoco/trunk/doc/dump-mojo.html http://www.jacoco.org/jacoco/trunk/doc/dump-mojo.html
API使用示例 http://www.jacoco.org/jacoco/trunk/doc/api.html包括:
- MBeanClient.java 此示例连接到覆盖代理来收集
通过 JMX 执行数据。
- ExecutionDataClient.java 这个例子
连接到覆盖代理以通过远程收集执行数据
协议。
- ExecutionDataServer.java 此示例启动套接字服务器
通过远程协议从代理收集执行数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)