当前位置: 首页 > 知识库问答 >
问题:

如何在声纳代码覆盖率分析中忽略代码块?

姚建树
2023-03-14

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

if(logger.isDebugEnabled()) {
    logger.debug("...")
}

有没有可能配置SonarQube,使这样的代码块不包含在代码覆盖率分析中?编写测试来覆盖这样的调试语句似乎没有多大意义...

我发现了如何:

    < li >从覆盖率分析中忽略整个文件 < li >忽略代码块中的问题

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

共有3个答案

那存
2023-03-14

我也遇到过同样的问题。我没有理会它,而是使用了以下两种技巧

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

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

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

王宜
2023-03-14

对于文件:

声纳项目属性

sonar.exclusions=**/someglobalfolder*/** , **/someotherglobalfolder/*.js

对于注释块:

参见文章:关闭某些代码的声纳

楚和悌
2023-03-14

由于Sonarqube可以导入JaCoCo覆盖率报告,因此您可以使用名称中包含“生成”的注释,如此处的nineninesevenfour所述。

在您的情况下,您将用logDebug()调用替换日志调用,并且:

    @Generated
    void logDebug(String message) {
        if(logger.isDebugEnabled()) {
            logger.debug("...")
        }
    }
 类似资料:
  • 我正在尝试在Android Studio中使用Gradle为一个新的空Android项目获得代码覆盖率。 我设法让声纳工作,但我似乎不能解决代码覆盖。(以前从未做过类似的事情) 我看过JaCoCo,但它与Android不兼容。科伯图拉也是如此。艾玛似乎还没和格雷迪一起工作。 我正在使用Gradle 1.11、Android Studio 0.5.1和Sonar Runner 2.3

  • 如何关闭SonarQube 4中的代码覆盖?我在单元测试中使用了JMockit,在Sonar中使用了JaCoCo代码覆盖插件。它们冲突是因为它们使用不同的JavaAgent来编辑类的字节码(如我所知)。我想关闭声纳中的代码覆盖。我可以在Jacoco的设置中排除我的项目,但这没有帮助。

  • 我正在使用Jacoco插件使用jenkins获得代码覆盖率。我能够看到代码覆盖率。当我尝试使用相同的jacoco.exec文件来生成声纳代码覆盖率时,它显示:由于没有类文件,无法对项目覆盖率进行JaCoCo分析。我使用以下声纳属性: 我正在使用SonarQube 5.3

  • 我使用jacoco来获取代码覆盖率指标,并使用声纳qube以及它来可视化它。 Jacoco拥有多个“子”覆盖范围 行 方法 分支 类 指示 但如果我们查看sonarqube,它只显示了一个“覆盖”信息。 sonarqube指的是上述5个覆盖范围中的哪一个?

  • 这是一个重要的可量化指标,如果代码覆盖率很高,你就可以放心的修改代码,在发版本的时候也能睡个安稳觉。否则就是拆东墙补西墙,陷入无尽的 bug 诅咒中。 那么在 OpenResty 里面如何看到代码覆盖率呢?其实很简单,使用 LuaCov 可以很方便的实现。 我们先了解下 LuaCov,这是一个针对 Lua 脚本的代码覆盖率工具,通过 luarocks 来安装: luarocks install l

  •   计算机科学中所说的代码覆盖率是一种用于衡量特定测试套件对程序源代码测试程度的指标。拥有高代码覆盖率的程序相较于低代码低概率的程序而言测试的更加彻底、包含软件 bug 的可能性更低。     --Wikipedia 在本章中,你将学到 PHPUnit 中与代码覆盖率相关的一切功能。通过这部分功能,能够了解在测试运行过程中执行了生产代码的哪些部分。它使用了 PHP_CodeCoverage 组件,