当项目不运行时,不会触发最重要突变的质量门

时间:2018-07-10 07:42:25

标签: pitest quality-gate

我们在声纳尔贝中使用pitest插件,并建立了突变覆盖率的质量门,因为它比其他覆盖率测量更有价值。 仅当推送不使用pitest的项目时,根本不会触发质量门。 是否可以定义一个质量门来检测根本没有为项目定义坑? 谢谢

1 个答案:

答案 0 :(得分:0)

您问题的简单答案:不,不是。缺少度量标准无法触发质量门条件。因此,必须计算一个指标。 但是最新版本的sonar-pitest-plugin(0.9)仅在存在突变分析数据(=存在最严重的报告)时才计算覆盖率信息。

但是,更改并不太复杂,如果需要紧急修复,请在第84行检查PitestComputer类,并添加以下else块:

if (mutationsTotal != null) {
  ...
} else {
   context.addMeasure(PitestMetrics.MUTATIONS_KILLED_PERCENT_KEY, 0.0);
}

编译并手动将其安装到您的实例中。

也就是说,我想给您一个简短的提示,在SonarQube中有一个更新的插件可以解决突变分析(完全公开:我是作者),其中包含一些新功能,规则等。

可从市场上购买该插件(名为“ Mutation Analysis”)。 该插件与sonar-pitest-plugin具有相同的限制,但是我刚刚创建了一个新的问题来解决您的问题:

https://github.com/devcon5io/mutation-analysis-plugin/issues/13

编辑: 此功能是在version 1.3

中实现的