我正在使用java代理生成集成测试的代码覆盖率,该测试与被测应用程序分开,并且这些测试使用该应用程序公开的外部接口。我已经执行 java -javaagent:
需要一些关于出了什么问题的建议。
我已经尝试了几乎所有的方法。我认为可能的原因之一是当我使用 ps aux | 时,java 进程未正确加载 jacoco 代理。 grep java 虚拟机重启后我没有得到任何输出
我知道 4 个月后可能会很晚,但这里有一些我的评论:无论您在操作系统中指定什么环境变量,这并不意味着 java 进程启动时就能“看到”它们。
您需要实际跟踪真正启动您需要 JACOCO 的 java 进程的位置,并将 -javaagent 添加到该进程的 VM 参数中。
它可能是一个批处理文件,或者是一个以某种方式触发虚拟机的 EXE,但它是用 INI 文件配置的,或者虚拟机进程可以从另一段源代码中启动,即您可能需要深入了解谁实际启动将虚拟机放入 Jenkins 作业中。
如果此过程允许您以某种方式覆盖或影响命令行或环境变量中的 vm 参数,那么您将获得更优雅的解决方案。 非常丑陋的解决方案就是“SED”,即将原始的 VM 调用替换为 BAT、CMD、SH,修改它以包含您的 -javaagent。