jacoco 报告某些文件的行未突出显示

jacoco report with some files having lines not highlighted

在检查我的 jacoco 报告时,我注意到有些文件没有突出显示行。它突出显示了方法名称,但没有突出显示方法中的任何语句。同时,其他文件的所有行都在 red/green 中突出显示,这是我所期望的。那么,为什么同一份报告中的某些文件没有突出显示任何内容?我阅读了常见问题解答,但似乎如果我在生成报告时搞砸了某些内容,none 行会突出显示吗?当我尝试使用错误的 class 文件生成报告时,所有行都会以红色突出显示。那么我遗漏了什么导致某些行未突出显示?

我正在使用 Maven 并正在对 java 项目进行代码覆盖。谢谢

class and jacoco file zip

method highlighted green but not any of the code

让我们看一下class:

的字节码
javap -v UserListsComponentProvider

显示

public void getUserShoppingListByListId(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, javax.ws.rs.container.AsyncResponse) throws com.coupons.web.api.base.BusinessException;
...
      LineNumberTable:
        line 50: 76
    Exceptions:
      throws com.coupons.web.api.base.BusinessException

所以字节码中关于行的信息只包含方法的一行 getUserShoppingListByListId 并且 JaCoCo 准确显示了它所看到的内容。

我猜会发生这种情况,因为您检测和分析由 AspectJ 编织的 classes,而不是检测和分析原始 classes。请参阅讨论类似问题并提供 JaCoCo 与 AspectJ 编译时织入的使用示例的 https://github.com/jacoco/jacoco/issues/476#issuecomment-271118961