JACOCO的坑

  • Post author:
  • Post category:其他


最近打算学一下jacoco,弄一下项目的测试覆盖率。

项目用的是sprint boot,并不是tomcat。所以打算用javaagent参数来弄

启动参数是这样的

java -jar md5.jar -javaagent:jacoco.jar:dumponexit=true,destfie=jacoco.exec

然后启动不成功。提示反射错误。

然后认真研究了一下jacoco的文档。因为项目用到了spring的东西,spring本身就是通过反射实现IoC的。打桩也是一种反射执行

所以除了自己的代码,其他的代码才需要打桩,于是我加了一下参数

java -jar md5.jar -javaagent:jacoco.jar:dumponexit=true,destfie=jacoco.exec,includeclass=com.ws.*

果然,这下可以启动成功了。但是当我退出进程的时候,就是没生成jacoco.exec

这下蛋疼了,想爆了头。后来灵机一动,会不会跟顺序有关

于是我百度了一下javaagent的用法。果然,javaagent必须在最前边,否则不生效。

好吧。最后来一发:

java -javaagent:jacoco.jar:dumponexit=true,destfie=jacoco.exec,includeclass=com.ws.* -jar md5.jar


这回总算可以了。但是生成的exec文件,如果单独要解释,又是一番百度,不过这些就比较简单了。后来顺利成功输出覆盖率文件。



版权声明:本文为jacksonchina2008原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。