【问题标题】:Understand SonarQube and its testing coverage了解 SonarQube 及其测试覆盖率
【发布时间】:2020-09-22 07:22:36
【问题描述】:

我是 SonarQube 的初学者,我真的尝试 google 并阅读了很多社区页面以了解 SonarQube 提供哪些功能。

我不明白的是:SonarQube 中的测试覆盖率指的是什么? 例如,如果它说新代码的覆盖率为 30%,那么新代码是什么意思?

SonarQube 什么时候说问题是错误?分析的代码是否与某个标准进行比较,以便 SonarQube 说存在错误?

我希望对 SonarQube 有更多了解的人可以帮助我理解它。非常感谢

【问题讨论】:

    标签: sonarqube test-coverage


    【解决方案1】:

    测试覆盖率(也称为代码覆盖率)对应测试用例执行的应用程序代码(即没有测试的代码和示例代码)占所有应用程序代码的比例代码库。

    SonarQube 本身不计算代码覆盖率。相反,覆盖率是由外部代码覆盖率工具(例如,cobertura、JaCoCo)计算和上传的。 SonarQube 呈现不同级别的代码覆盖率(例如,行覆盖率、条件覆盖率);见https://docs.sonarqube.org/latest/user-guide/metric-definitions/#header-9

    新代码的覆盖率是指在同一基线以来所有添加和更改的代码中,自某个基线以来被覆盖和添加(或修改)的代码的比例。例如,基线可以是先前分析的代码状态或先前提交的代码状态。也就是说,该指标表示更改 的测试范围。请注意,100% 的覆盖率并不意味着代码已经过完美测试;它只是说所有代码都已由测试用例执行

    SonarQube 中的

    问题不一定代表错误。通常大多数问题实际上不是错误,而是长期影响代码可维护性的问题(例如,代码重复)或违反最佳实践。尽管如此,一些问题仍可能代表错误(例如,潜在的 null 取消引用、不正确的并发处理)。 请注意,问题也可能是误报,因此根本不是问题。

    大多数问题都是通过在代码结构中搜索某些模式来识别静态代码分析的。有些可以通过简单的代码搜索发现(例如,违反命名约定)。其他分析/问题类可能还需要数据流分析(空解引用)或需要字节码信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-09
      • 2022-07-01
      • 2018-10-18
      • 2015-03-13
      • 2014-05-04
      • 2021-03-03
      • 2021-10-23
      • 2015-10-26
      相关资源
      最近更新 更多