从 cobertura 的代码覆盖率中排除特定方法?

2022-09-03 08:05:36

我试图使用以下配置从检测中忽略所有toString()方法。这真的不起作用吗?这是使用cobertura作为maven插件。这是基于之前的答案 从Cobertura的代码覆盖率中排除方法

<instrumentation>
    <ignores>
        <ignore>toString</ignore>
    </ignores>
</instrumentation>

你认为我做错了什么。我无法在cobertura文档上找到这方面的示例。


答案 1

cobertura-ant reference

“忽略模式可以是任何有效的 perl 5 正则表达式。这将忽略对与 ignore 正则表达式匹配的任何方法的任何调用。在仪器化期间,它不会跳过这些类。要从分析中排除类,请从文件集中排除它们,或者使用下面的替代方法并指定 excludeClasses 模式。

<cobertura-instrument todir="${instrumented.dir}">
    <ignore regex="org.apache.log4j.*" />
    ...
</cobertura-instrument>

我相信你必须将“ignores”改为“ignore”,并使用正则表达式在方法之前定义整个类名(或者只是一个*,在这种情况下从任何类中排除)。toString


答案 2

推荐