使用TCP服务器方法的Jacoco检测

问题描述

我正尝试在远程服务器上的Java代码上运行集成测试,因此,每当我的测试到达我的代码服务器时,jacoco都将其记录下来。

我是jacoco的新手,到目前为止,我已经知道有一种tcp服务器方法,不需要重新启动。

  1. 我已在/ etc / profile中添加以下行。
export JAVA_OPTS="-javaagent:/home/vansh/jacoco/lib/jacocoagent.jar=address=*,port=57026,destfile=/home/vansh/jacoco/jacoco.exec,output=tcpserver"

2)但是当我尝试使用以下命令进行转储时-

java -jar jacococli.jar dump --address localhost --port  57026 --destfile /home/vansh/jacoco/jacoco-it.exec
ERROR:

[INFO] Connecting to localhost/127.0.0.1:57026.
[WARN] Connection refused (Connection refused).
[INFO] Connecting to localhost/127.0.0.1:57026.
Exception in thread "main" java.net.ConnectException: Connection refused (Connection refused)
    at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
    at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
    at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
    at java.base/java.net.socksSocketImpl.connect(SocksSocketImpl.java:403)

我检查了端口57026上没有任何运行,我的第一个命令javaagent是否正确?

解决方法

一年前我做过同样的事情,以我为例,我运行一个TCP_Client jar以多种方式(定期/有和没有重置以前的覆盖范围)来收集转储。

我将JAVA_OPTS设置如下,

-javaagent:<file_Path_for_jacoco_agent>/jacocoagent.jar=output=tcpserver,address=*,port=6300

这是我的tcp客户端的回购链接-enter link description here

设置代码的固定参数或使用此存储库创建一个jar

如果您通过此代码运行jar,

您可以通过传递“地址”,“端口”,“转储文件夹路径”,“定期转储时间”,“每个转储重置选项”参数来运行此jar。

示例:java -jar ExecutedDataDump.jar "127.0.0.1" "6300" "D:\\server-dumplog\\" "5" "noreset"

每5秒钟您将获得带有时间戳的jacoco.exec文件,由于不进行重置,每个jacoco.exec都将获得累积报告

希望这对您有所帮助。