我将如何添加注释以从 jacoco 代码覆盖率报告中排除方法?

新手上路,请多包涵

我有一些 Java 代码想从代码覆盖范围中排除。我该怎么做?我希望能够添加注释。有没有办法配置或扩展 jacoco(在 gradle 中使用)来使用它?

例子:

 public class Something
{
    @ExcludeFromCodeCoverage
    public void someMethod() {}
}

原文由 Don Rhummy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 855
2 个回答

由于对此没有直接答案,因此做了一些研究并发现了这个 PR。

https://github.com/jacoco/jacoco/pull/822/files

   private static boolean matches(final String annotation) {
    final String name = annotation
            .substring(Math.max(annotation.lastIndexOf('/'),
                    annotation.lastIndexOf('$')) + 1);
    return name.contains("Generated")
  }

您可以创建任何名称包含“已生成”的注释。我在我的代码库中创建了以下内容,以排除方法被包含在 Jacoco 报告中。

 @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface ExcludeFromJacocoGeneratedReport {}

在您的方法中使用此注释以使其免于覆盖,如下所示。

 public class Something
{
    @ExcludeFromJacocoGeneratedReport
    public void someMethod() {}
}

原文由 Mohamed Anees A 发布,翻译遵循 CC BY-SA 4.0 许可协议

JaCoCo 的 0.8.2 版本中添加了新功能,它过滤掉使用@Generated 注释的类和方法。有关详细信息,请参阅以下文档:

在报告生成期间过滤掉使用保留策略为运行时或类且简单名称为生成的注解的类和方法(GitHub #731)。

JaCoCo 0.8.2 发行说明

原文由 Ajinkya 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题