【问题标题】: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。所以让测试类加载记录器以打印这些语句。

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

    【讨论】:

      猜你喜欢
      • 2011-07-26
      • 1970-01-01
      • 2012-06-30
      • 2015-12-06
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      • 2012-06-11
      • 1970-01-01
      相关资源
      最近更新 更多