IntelliJ默认覆盖率工具对Java Record与Lombok类的统计疑问
IntelliJ默认覆盖率工具对Java Record与注解类的统计差异问题
问题现象
- 使用IntelliJ默认覆盖率工具执行JUnit测试时,所有无自定义代码的Java Record类均被标记为0%覆盖率,示例代码如下:
public record ProcessRequestDTO(String path) { // NOTHING HERE }
- 对比情况:通过Lombok注解(
@Getter、@Setter、@AllArgsConstructor、@NoArgsConstructor)自动生成代码的普通Java类,完全不会被纳入覆盖率统计池,示例代码如下:
@Getter @Setter @AllArgsConstructor @NoArgsConstructor public class Other{ private File file; } // This class is not even added to the coverage pool
核心疑问
- IntelliJ覆盖率工具要求Record类覆盖哪些代码部分?是自动生成的构造方法,还是属性对应的Getter方法?
- 为何同样是自动生成代码的场景,注解类不会进入统计池,而Record类会被统计且显示0%覆盖率?
补充说明
截图展示了覆盖率工具中“无内容可覆盖”和“存在覆盖潜力”的类别差异:
注:当前无法使用JaCoCo,仅需针对IntelliJ默认覆盖率工具提供解答。
内容的提问来源于stack exchange,提问作者floxcc
相关产品推荐
相关产品推荐

