gpt4 book ai didi

SonarQube - 即使代码库没有发生任何修改, Sonar 方式在泄漏期间的覆盖也会失败

转载 作者:行者123 更新时间:2023-12-02 23:26:59 24 4
gpt4 key购买 nike

也许这是我对质量门的无知,但由于通过 VSTS 构建使用 sonarway 代码质量门时,泄漏期间默认的 40% 覆盖率,我的质量门失败了。问题是初始分析和最新分析之间的代码没有任何修改,因此引用文档中的比喻..厨房里没有额外的水..因此我没有看到这样做的原因失败的标准。

是否有其他人经历过这种情况和/或如果这确实是预期的行为,任何人都可以解释其逻辑吗? IMO,我希望当泄漏期间代码库没有发生任何修改时,泄漏期间代码覆盖率检查不适用。

我的SQ分析是通过VSTS执行的,SQ的版本是6.7.3。

由于覆盖率泄漏导致 QG 失败的分析摘要(覆盖率百分比仍然相同) Quality Gate Overview with Coverage failure

当存在代码修改并且这些特定修改具有 100% 代码覆盖率时,也会出现此问题 100% Coverage on New Code also fails

Sonar 质量门配置如下(默认配置): sonarway quality gate configuration

根据要求,我还创建了一个简单的演示项目,它也演示了该行为(使用 SQ 分析运行构建,第二次构建由于泄漏期间的覆盖率为 0.0% 而失败,尽管没有新代码)。示例项目可参见here

如果有人可以向我解释这种行为,我将不胜感激,因为它似乎与文档相矛盾。

最佳答案

万一有人偶然发现这个问题,结果证明它有点转移注意力!

经过与同事的良好讨论,我们一致认为将覆盖门条件设置为始终泄漏期是不正确的门配置。

我错误地假设 SonarQube 方式是内置默认方式并且不可编辑。然而事实证明,门实际上是可编辑的。 只读模式仅从 v7.0 开始强制执行,按照release notes 。因此,我们错误配置的根本原因仍在调查中,但我们可以确定它不是按照 SonarQube documentation 默认和推荐的 Gate。

在上面发布的示例中,门提示额外的 0.7% 覆盖率低于最低 40% 的错误水平。条件本身按照配置应用,但实际上应该不可能启用覆盖范围的泄漏期。相反,应使用新代码覆盖率

简单的单衬解决方案:如果使用覆盖条件

,请确保将 过度泄漏期设置为从不(和/或未选择)

关于SonarQube - 即使代码库没有发生任何修改, Sonar 方式在泄漏期间的覆盖也会失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49996997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com