【问题标题】:Configure SonarQube Quality Gate threshold for new issues rather than increase in value为新问题配置 SonarQube 质量门阈值,而不是增加价值
【发布时间】:2017-05-14 02:39:36
【问题描述】:

我正在使用 SonarQube 5.1.2。

我想为 SonarQube 项目配置质量门。
但是,由于这些是遗留项目,根据现有规则,我们已经存在一些阻碍和关键问题

我想根据从现在开始出现的新问题定义一个质量门,并促进这些问题的持续减少,同时不允许引入新的阻止问题。

例如,我可以从给定日期开始使用“新的阻止程序问题”标准,但不会完全按照我的意愿工作,因为如果有人添加了阻止程序问题,但与此同时,有人解决了现有的阻止程序问题,余额将为空,因此质量门不会变为“红色”。

另一方面,如果我配置阈值“拦截器问题”,值 > 0,自上次分析以来,也将不起作用,因为下次 SonarQube 运行时,如果没有引入新的拦截器问题,质量门将更改为“绿色”,即使之前分析中的新拦截器问题也根本没有修复。

相反,我希望 SonarQube 能够实际检测到“新问题”(而不是它们的数量差异),并继续将它们计为“新问题”,因为我们希望强制没有新的“拦截器问题”在此期间引入,同时解决现有问题。

有没有办法配置质量门来反映这一点?
也许我只是以错误的方式配置它。我发现了 2 个标准:“拦截器问题”和“新拦截器问题”,但它们与句点结合时的行为似乎完全相同。

【问题讨论】:

    标签: sonarqube sonarqube5.1


    【解决方案1】:

    SonarQube 旨在解决您的用例,即关注新代码。这是它的Water Leak Paradigm 的重点。

    简而言之:当您的质量门的条件是“泄漏期间没有新问题”时,SonarQube 将确保存在“没有创建新问题泄漏期开始之后”即“仅容忍泄漏期之前存在的问题”即“我容忍遗留问题,我严格遵守不容忍任何新问题”即“我不会泄露新问题”。

    回到您的查询:

    例如,我可以从给定日期起使用“新的阻止程序问题”标准,但不会完全按照我的意愿工作,因为如果有人添加了阻止程序问题,但与此同时,有人解决了现有的阻止程序问题,余额将为空,因此质量门不会变为“红色”。

    不,SonarQube 不会关心平衡。 SonarQube 将查找在该日期之后创建的问题(更一般地说:在泄漏期开始之后)。您将能够在项目主页 (example) 上看到这一点,如果进行了相应的配置(例如 没有新的阻止程序问题),质量门将被打破。

    尝试使用示例代码删除现有问题并添加新问题(不要只是将现有问题移动到不同的行,因为 SonarQube 具有问题跟踪机制)。

    P.S.:5.1.2 已经很老了,您应该升级到最新的 SonarQube LTS(撰写本文时为 5.6.x)。 Leak Period 在 UI/UX 中出现得更多,相关的 Quality Gate 配置也更全面。

    【讨论】:

    • 好的,我再次测试了它,它可以工作。我不知道我之前做错了什么,也许 SonarQube 被识别为同一个问题,因为它是一个类似的示例代码......
    • IMO 允许以更独立的方式配置泄漏周期而不是仅通过周期会很有用。我不知道这在更高版本的 SonarQube 中是否可行。否则我需要为此“占用”一段时间。
    猜你喜欢
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 2018-08-06
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 2011-03-30
    相关资源
    最近更新 更多