当项目没有运行 ptest 时,不会触发 Pitest 突变的质量门
Posted
技术标签:
【中文标题】当项目没有运行 ptest 时,不会触发 Pitest 突变的质量门【英文标题】:quality gate on pitest mutations is not triggerd when project does not run pitest 【发布时间】:2018-12-17 23:19:41 【问题描述】:我们在 sonarqube 中使用 Pitest 插件并设置突变覆盖质量门,因为它比其他覆盖测量更有价值。 只是,当推送一个不使用pitest的项目时,根本不会触发质量门。 是否有可能定义一个质量门来检测根本没有为项目定义的pitest? 谢谢
【问题讨论】:
【参考方案1】:简单回答您的问题:不,不是。没有度量标准不能触发质量门条件。所以必须计算一个指标。 但最新版本的 sonar-pitest-plugin (0.9) 仅在存在突变分析数据时才计算覆盖率信息(= 存在最糟糕的报告)。
不过更改并不过分复杂,如果您需要紧急修复,请检查第 84 行的 PitestComputer 类并添加以下 else 块:
if (mutationsTotal != null)
...
else
context.addMeasure(PitestMetrics.MUTATIONS_KILLED_PERCENT_KEY, 0.0);
编译并手动安装到您的实例中。
也就是说,我想给你一个简短的提示,SonarQube 中有一个更新的插件解决突变分析(完全披露:我是作者),具有几个新功能、规则等。
该插件可通过市场获得(名为“突变分析”)。 该插件与 sonar-pitest-plugin 具有相同的限制,但我刚刚创建了一个新问题来解决您的问题:
https://github.com/devcon5io/mutation-analysis-plugin/issues/13
编辑: 这个功能在version 1.3实现了
【讨论】:
以上是关于当项目没有运行 ptest 时,不会触发 Pitest 突变的质量门的主要内容,如果未能解决你的问题,请参考以下文章
点击事件上的 jQuery Mobile listview 小部件不会为 Mobile 触发