如何忽略Sonar代码覆盖率分析中的代码块?

dok*_*par 6 logging code-coverage sonarqube

在我们的代码中,有很多这样的日志记录片段:

if(logger.isDebugEnabled()) {
    logger.debug("...")
}
Run Code Online (Sandbox Code Playgroud)

是否可以配置SonarQube,以便代码覆盖率分析中不包含此类代码块?编写测试以涵盖此类调试语句似乎没有多大意义......

我发现了如何:

  • 忽略覆盖率分析中的整个文件
  • 忽略代码块中的问题

但我没有找到从覆盖率分析中排除代码块的方法.

Har*_*ler -2

我也遇到了同样的问题。我使用了以下两种技术而不是忽略它

1)使用任何模拟框架示例 Mockito、Powermockito、PowerMock 等模拟这些记录器。在适用的情况下,在测试类中使用相同的模拟代码

2)将logback-test.xml(或您使用的任何日志框架的日志配置文件)保留在类路径中,并设置较低的日志级别(如Trace)。因此让测试类加载记录器以打印这些语句。

这将有助于显示有关测试用例如何执行语句的详细信息