Java 未来我知道SonarQube可以在单个项目/分支上实现这一点,但我们如何防止合并到master,除非新代码>80%或其他任意数字?我不确定SonarQube是否能为我们提供这种能力,我们希望采取预防措施,让我们的质量关口通过,而不是允许有人合并新代码,结果

Java 未来我知道SonarQube可以在单个项目/分支上实现这一点,但我们如何防止合并到master,除非新代码>80%或其他任意数字?我不确定SonarQube是否能为我们提供这种能力,我们希望采取预防措施,让我们的质量关口通过,而不是允许有人合并新代码,结果,java,sonarqube,code-coverage,jacoco,Java,Sonarqube,Code Coverage,Jacoco,未来我知道SonarQube可以在单个项目/分支上实现这一点,但我们如何防止合并到master,除非新代码>80%或其他任意数字?我不确定SonarQube是否能为我们提供这种能力,我们希望采取预防措施,让我们的质量关口通过,而不是允许有人合并新代码,结果在构建主分支后失败。我们要找的是基本上比较主功能分支的负责人和功能分支的负责人,然后在增量上强制执行%覆盖率。请参阅我的第二次尝试@dforrest。感谢提供有关解决方法的信息。这是有道理的,但不幸的是,这会给我们的构建过程增加很多时间,所以我


未来

我知道SonarQube可以在单个项目/分支上实现这一点,但我们如何防止合并到master,除非新代码>80%或其他任意数字?我不确定SonarQube是否能为我们提供这种能力,我们希望采取预防措施,让我们的质量关口通过,而不是允许有人合并新代码,结果在构建主分支后失败。我们要找的是基本上比较主功能分支的负责人和功能分支的负责人,然后在增量上强制执行%覆盖率。请参阅我的第二次尝试@dforrest。感谢提供有关解决方法的信息。这是有道理的,但不幸的是,这会给我们的构建过程增加很多时间,所以我不确定这是否可行。对于新的“健壮分支分析”功能,有什么样的支持?这个用例是正在考虑的吗?如果是,您是否有下一个具有增强分支分析支持的LTS版本的时间表?没有一个下一个LTS(2017年10月)不会有它。之后的那个应该是。“什么样的支持?”仍然没有定义,但我们确实计划它是“健壮的”。我认为强制执行覆盖率大于X%的新代码无论如何都是一个有缺陷的概念。当每个人都在添加新功能(大部分是全新的代码)时,它看起来可能会起作用,但是如果团队中有一个开发人员定期修复警告,那么看到仅命中一行或两行的PRs是很常见的,我们已经看到很多情况下,Sonar在这种情况下表现得不够理智。(例如,您所做的两个单行修复会导致重复代码检查失败。或者,您所做的单行修复会导致条件覆盖率检查失败,即使它不涉及任何实际代码行。)我理解SonarQube可以在单个项目/分支上执行此操作,但是,除非新代码>80%或其他任意数字,否则我们如何防止合并到master?我不确定SonarQube是否能为我们提供这种能力,我们希望采取预防措施,让我们的质量关口通过,而不是允许有人合并新代码,结果在构建主分支后失败。我们要找的是基本上比较主功能分支的负责人和功能分支的负责人,然后在增量上强制执行%覆盖率。请参阅我的第二次尝试@dforrest。感谢提供有关解决方法的信息。这是有道理的,但不幸的是,这会给我们的构建过程增加很多时间,所以我不确定这是否可行。对于新的“健壮分支分析”功能,有什么样的支持?这个用例是正在考虑的吗?如果是,您是否有下一个具有增强分支分析支持的LTS版本的时间表?没有一个下一个LTS(2017年10月)不会有它。之后的那个应该是。“什么样的支持?”仍然没有定义,但我们确实计划它是“健壮的”。我认为强制执行覆盖率大于X%的新代码无论如何都是一个有缺陷的概念。当每个人都在添加新功能(大部分是全新的代码)时,它看起来可能会起作用,但是如果团队中有一个开发人员定期修复警告,那么看到仅命中一行或两行的PRs是很常见的,我们已经看到很多情况下,Sonar在这种情况下表现得不够理智。(例如,您所做的两个单行修复会导致重复代码检查失败。或者您所做的单行修复会导致条件覆盖率检查失败,即使它不涉及任何实际代码行。)“防止合并新代码”:我个人的意见是,您不应该这样做。在某些情况下,实现覆盖率目标是没有意义的。强制执行只会浪费精力,而不会对质量产生任何积极影响。“防止合并新代码”:我个人的意见是,您不应该这样做。在某些情况下,实现覆盖率目标是没有意义的。强制执行只会浪费精力,而不会对质量产生任何积极影响。
git diff origin/master... > diff.txt

./diffFilter --jacoco diff.txt jacoco.xml 80