JACOCO的坑

最近打算学一下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文件,如果单独要解释,又是一番百度,不过这些就比较简单了。后来顺利成功输出覆盖率文件。



你可能感兴趣的:(JACOCO的坑)