【问题标题】:How to ignore code blocks in Sonar code coverage analysis?如何忽略 Sonar 代码覆盖分析中的代码块?
【发布时间】:2015-07-29 18:25:16
【问题描述】:
在我们的代码中,有很多这样的日志片段:
if(logger.isDebugEnabled()) {
logger.debug("...")
}
是否可以配置 SonarQube 以使此类代码块不包含在代码覆盖率分析中?编写测试来涵盖此类调试语句似乎没有多大意义......
我知道了如何:
但我没有找到仅从覆盖分析中排除代码块的方法。
【问题讨论】:
标签:
logging
sonarqube
code-coverage
【解决方案1】:
我也遇到了同样的问题。我使用了以下两种技术而不是忽略它
1) 使用任何 Mocking 框架示例 Mockito、Powermockito、PowerMock 等来模拟这些 Logger。在适用的情况下跨测试类使用相同的 Mocking 代码
2) 将 logback-test.xml(或您使用的任何日志框架的日志配置文件)保留在类路径中,并设置 Low Log Level Like Trace。所以让测试类加载记录器以打印这些语句。
这将有助于显示有关测试用例如何执行语句的详细信息