所以这就是要点......
我使用docker-compose
。我的应用程序只是REST服务的集合(具有嵌入式tomcat的spring boot),所以基本上我坚持测试端点。每当我希望用测试构建项目时(在一个完整的单独模块中),我使用gradle和gradle docker-compose插件。发生的事情是,在编译完成后,docker-compose gradle插件会启动所有服务,等待app容器启动并运行正常并执行一堆http请求(测试)。
所以我的想法是 - 在完整的CI构建期间,使用jacoco代理在docker容器中启动应用程序,这将在执行所有http测试时生成覆盖数据。但文件输出始终为空。
我将以下JAVA_OPTS
添加到应用容器中
-javaagent:\jacoco\jacocoagent.jar=destfile=\tmp\jacoco.exec,includes=my.company.*,append=true,dumponexit=false
创建\tmp\jacoco.exec
但它保持在0字节。
我使用的Jacoco版本是0.7.9
。我做错了什么或者我不明白jacoco代理人的全部意义吗?
答案 0 :(得分:1)
dumponexit=false
与destfile=...
一起表示该文件不会在VM关闭(http://www.jacoco.org/jacoco/trunk/doc/agent.html)上写入,而只会在API请求(http://www.jacoco.org/jacoco/trunk/doc/api/org/jacoco/agent/rt/IAgent.html#dump(boolean))上写入,这不是您的意图,我想。因此,将dumponexit
设置为true
,或者根本不指定它,因为true
是默认值。