我正在尝试为一个模块(java项目)的功能测试用例生成代码覆盖率报告。我试图从命令行执行此操作。基本上我运行一个shell脚本来运行我的应用程序,我在shell脚本中添加以下参数,以便我可以创建jacoco.exec文件,以后可以将其转换为HTML报告。
-javaagent:/root/jacoco/lib/jacocoagent.jar=destfile=/root/jacoco/data/jacoco.exec
为什么jacoco.exec文件被创建为空?
答案 0 :(得分:0)
jacoco.exec始终是空的。它在JVM出口处填充。
Jacoco使用shutdown hook在jacoco.exec中启动数据转储。
或者,您可以通过执行以下操作来触发转储:
我可以在不停止JVM的情况下收集覆盖信息吗? 是的,有两种可能的方法:可以通过TCP / IP套接字配置JaCoCo代理进行远程控制。这允许从运行的JVM在任何时间点收集执行数据。 dump Ant任务或dump Maven目标可用于请求转储。遥控器功能还允许您重置 执行数据。
或者,可以将JaCoCo代理配置为通过JMX公开某些功能(jmx = true)。 bean org.jacoco:type = Runtime提供操作 在任何时间点转储和重置执行数据