gpt4 book ai didi

java - Cobertura 和 Jenkins 中跳过 Java 日志记录 (isLoggable)

转载 作者:太空宇宙 更新时间:2023-11-04 08:09:34 38 4
gpt4 key购买 nike

我目前正在成为一名 TDD 黑客。作为其中的一部分,我认为像 Cobertura 生成的代码覆盖率报告是一个重要的工具。

但是,我的代码覆盖率有点臃肿,因为以下代码未正确覆盖:

if(logger.isLoggable(Level.INFO)) {
logger.info("blah blah blah");
}

我正在 Jenkins 和 Maven 中运行该报告(不知道这会是一个问题吗?)。 isLoggable(Level.INFO) (在我的例子中)始终为 true,因此它会输入并记录。我希望能够跳过该部分或能够将 isLoggable(Level.XX) 设置为 true AND false。

有什么想法、提示等吗?也许我忽略了一些事情,一切都非常感激! :)

[编辑]似乎是 Maven cobertura 插件中的一个错误,应该在 2.6 中修复:http://jira.codehaus.org/browse/MCOBERTURA-52但是2.6还没有发布,所以我只能等待......[/编辑]

最佳答案

当您检测类时,您可以忽略某些方法/调用。报告是此后的一个步骤。

对于 ant,这是这​​样完成的(来自 docs 的示例)。 Maven 可能有相同的选项,但这取决于您使用的 Maven 插件。:

<cobertura-instrument todir="${instrumented.dir}">
<ignore regex="java.util.logging.*" />
<fileset dir="${classes.dir}">
...
</fileset>
</cobertura-instrument>

您只需为要从检测中排除的包设置一个忽略正则表达式,这样它们就不会显示在报告中。

使用 Maven 这应该可以工作:

<instrumentation>
<ignores>
<ignore>java.util.logging.*</ignore>
</ignores>
</instrumentation>

关于java - Cobertura 和 Jenkins 中跳过 Java 日志记录 (isLoggable),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11467511/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com