java - Jacoco 代理 - 无输出

标签 java spring docker gradle jacoco

所以这是要点......

我使用docker-compose 。我的应用程序只是 REST 服务的集合(带有嵌入式 tomcat 的 spring boot),所以基本上我坚持测试端点。每当我希望使用测试构建项目(位于一个完整的单独模块中)时,我都会使用 gradle 和 gradle docker-compose 插件。发生的情况是,在编译后的完整构建过程中,docker-compose gradle 插件会启动所有服务,等待应用程序容器启动并正常运行,然后执行一堆 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 代理是怎么回事?

最佳答案

dumponexit=falsedestfile=... 一起表示文件不会在 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 是默认值。

关于java - Jacoco 代理 - 无输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44619334/

相关文章:

docker - 如何访问Docker镜像中的JIRA Software文件?

java - 从类外部运行父类定义的 equal 方法

java - 如果我们知道实体类的属性名称,是否有办法获取 DynamoDB 属性名称?

java - 使用原始查询或在cursorAdapter 中对数据进行排序

java - JPA 查找方法持久化数据

java - Autowiring sessionfactory时出错

java - 使用 Hibernate 实体的域实体?

java - 同步可以作为AOP中的一个方面吗

docker - 如何在 Alpine 中使用 libass/l-smash/x264/fdk-aac 静态编译 ffmpeg

docker - 如何更新我的 docker 服务/堆栈使用的最新镜像?