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

chi*_*nto 16 java code-coverage cobertura

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

<instrumentation>
    <ignores>
        <ignore>toString</ignore>
    </ignores>
</instrumentation>
Run Code Online (Sandbox Code Playgroud)

你觉得我做错了什么?我无法在cobertura文档中找到这样的例子.

小智 3

cobertura-ant 参考

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

<cobertura-instrument todir="${instrumented.dir}">
    <ignore regex="org.apache.log4j.*" />
    ...
</cobertura-instrument>
Run Code Online (Sandbox Code Playgroud)

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