我想使用 JaCoCo 测量集成测试的代码覆盖率和 Sonar 工具。
为此,我启动了配置了 JaCoCo 代理的 Tomcat 5.5,以便从 JaCoCo 获取转储文件。
因此,我为此设置了 JAVA_OPTS
:
set JAVA_OPTS=-Xrs -XX:MaxPermSize=256m -XX:PermSize=256m -XX:NewRatio=3 -Xms512m -Xmx1024m -XX:+UseParallelGC -javaagent:C:\dev\servers\jacoco-agent.jar=destfile=C:\dev\servers\jacoco.exec,append=true,includes=my.application.*
当我启动 Tomcat 时,生成了 C:\dev\servers\jacoco.exec
文件,但没有填充任何数据。
我在服务器配置中忘记了什么吗?
问候。
最佳答案
我意识到 2 年前问这个问题时这可能不是一个选项,但目前您有一些其他选项可用于获取 JaCoCo 执行数据而无需关闭 Tomcat(或任何使用 JaCoCo java 代理检测的 JVM) .
首先查看 JaCoCo Java 代理的当前文档:http://www.eclemma.org/jacoco/trunk/doc/agent.html
您可以在 JaCoCo 代理上使用 output=tcpserver 选项让 Java 代理监听命令。您可以设置 address=* 让 tcpserver 监听所有接口(interface),您可以设置 port=6300 参数来选择 tcpserver 应该监听的端口。
通过 tcpserver,可以指示 JaCoCo java 代理在您需要时向您发送数据。
如果您的 JVM 当前正在公开 JMX,您可以使用另一个选项,而无需打开其他端口。通过设置 jmx=true 选项,JaCoCo java 代理公开了一个您可以与之交互的 MBean。
如果您使用的是 Maven,则可以查看我最近编写的插件,以便在运行时从远程 JVM 收集 JaCoCo 数据。该插件的项目位于:
https://github.com/mattcj/jacocotogo
关于java - 在 Tomcat 上使用 JaCoCo Java 代理获取我的应用程序的代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6856744/