代码之家  ›  专栏  ›  技术社区  ›  runforrestrun

新代码行的代码覆盖质量门

  •  0
  • runforrestrun  · 技术社区  · 8 年前

    我看到过一些关于将git责备和排除/包含列表与SonarQube或JaCoCo结合使用的建议,但是这将报告整个类的覆盖率,而不仅仅是新的/更改的行,因此我们可能会遇到一个问题,即由于缺乏遗留覆盖率,合并被阻止。

    2 回复  |  直到 8 年前
        1
  •  2
  •   G. Ann - SonarSource Team    4 年前

    你要寻找的是新代码的覆盖率,它包含在默认的质量门中,有80%的要求。

    合并

    • 使用 sonar.version * 。这建立了泄漏基线
    • sonar.branch 分析属性来区分它与您的分析大师。
    1. since_previous_version
    2. 更新分支项目分析作业以指向分支并重置 至“分支机构” *
    3. 在合并之前建立一个检查分支QG状态的过程
    4. 删除分支后删除分支SQ项目

    请注意,本文中的“新代码”是指自泄漏期开始以来添加的行和修改的(旧)行。泄漏期可以定义为最后X天(次优)、自给定日期(更好但仍不完美)、自特定版本或自 previous_version

    编辑21年6月21日 在所有商业版本中,分支机构和PRs现在都可以测量新代码的覆盖率。

        2
  •  1
  •   exussum    8 年前

    https://github.com/exussum12/coverageChecker

    git diff origin/master... > diff.txt
    
    ./diffFilter --jacoco diff.txt jacoco.xml 80
    

    这将在更改的行覆盖率低于80%的构建上失败(并显示缺失行的列表),并且可以忽略任何内容>80%(如果适用,还显示漏测线列表)

    如果您修改旧代码,此工具也将因缺乏遗留覆盖而失败。(对于正在更改的代码,您可能应该至少进行一次测试)。这可能会减慢一些更改的速度,但您将获得所有修改区域的覆盖率,这将使事情在未来变得更好