我正在尝试使用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%。
有解决方法吗?
任何帮助都将不胜感激。
答案 0 :(得分:0)
您的配置
<ignore>org.slf4j.Logger.*</ignore>
失败。 使用
<ignore>org.slf4j.*</ignore>
并删除exclude config。
答案 1 :(得分:0)
看起来您正在使用SLF4J - 因此最简单的方法是删除那些保护条款,因为您可以使用参数化日志记录。
IntelliJ IDEA将为您转换为此菜单 - 菜单&gt;分析&gt;按名称运行检查==&#34;非常量字符串连接作为记录调用的参数&#34; )并为它找到的人提供快速解决方案。 见http://www.slf4j.org/faq.html#logging_performance