在Eclipse中使用JaCoCo和Liberty Profile 8.5.5.4不会产生任何代码覆盖



我正在尝试使用JaCoCo进行代码覆盖。我从Eclipse运行自由(使用Eclipse启动器)。在jvm。选项中,我添加了这些行:(替换对于路径)

-Xshareclasses:none
-javaagent:<location>/jacocoagent.jar=destfile=jacoco.exec,output=file,append=false,classdumpdir=./classdump
但是,在运行测试之后,我没有看到任何覆盖率信息。看起来JaCoCo无法链接到我的web应用程序war文件中的Java类。

是否有一个不同的进程运行的自由有java类?可以将java代理附加到该进程吗?

是否使用JaCoCo 0.7.3或更高版本?如果是,我怀疑这个问题是由问题#272的变化引起的,因为上次我检查时,WebSphere Liberty配置文件没有定义带有CodeSource位置的类,所以JaCoCo中的这个启发式导致在WebSphere Liberty配置文件上运行的应用程序中的所有类都被忽略。如果您可以确认您的应用程序在某些最近的Liberty修复包(MyClass.class.getProtectionDomain().getCodeSource().getLocation())上是这种情况,那么我建议打开WebSphere RFE, JaCoCo issue,或者两者都打开。

问题解决。

必须使用较旧版本的JaCoCo(0.7.2)而不是最新版本的JaCoCo(0.7.6)。

Thanks to bkail

最新更新