gpt4 book ai didi

java - 使用 Cobertura 时如何忽略 Logger 相关的 If 条件?

转载 作者:行者123 更新时间:2023-11-30 07:35:28 25 4
gpt4 key购买 nike

我正在尝试使用 Cobertura 增加 JUnit 测试用例覆盖率。

代码中有相当多的Logger,还有If条件来检查Info或Debug是否启用。例如:

if (LOGGER.isInfoEnabled()) {
LOGGER.info("Some info...");
}

现在显然,没有其他部分了。上面的代码将有 50% 的分支覆盖率。我怎样才能做到100%?

我尝试忽略仪器中的 Logger 调用:

<instrumentation>
<ignores>
<ignore>org.slf4j.Logger.*</ignore>
</ignores>
<excludes>
<exclude>**/Example.class</exclude>
</excludes>
</instrumentation>

但这只是将覆盖率降低至 0%。

有解决办法吗?

如有任何帮助,我们将不胜感激。

最佳答案

看起来您正在使用 SLF4J - 因此最简单的方法是删除这些保护子句,因为您可以使用参数化日志记录。

IntelliJ IDEA 将为您转换为此内容 - Menu>Analyze>Run Inspection By Name == "Non-Constant String concatenation as argument tologging call")并为其找到的问题提供快速修复。请参阅http://www.slf4j.org/faq.html#logging_performance

关于java - 使用 Cobertura 时如何忽略 Logger 相关的 If 条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35456447/

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