问题描述
我正尝试在远程服务器上的Java代码上运行集成测试,因此,每当我的测试到达我的代码服务器时,jacoco都将其记录下来。
我是jacoco的新手,到目前为止,我已经知道有一种tcp服务器方法,不需要重新启动。
- 我已在/ 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都将获得累积报告
希望这对您有所帮助。