1

我们在 sonarqube 中使用 Pitest 插件并设置突变覆盖质量门,因为它比其他覆盖测量更有价值。只是,当推送一个不使用pitest的项目时,根本不会触发质量门。是否有可能定义一个质量门来检测根本没有为项目定义的pitest?谢谢

4

1 回答 1

0

简单回答您的问题:不,不是。没有度量标准不能触发质量门条件。所以必须计算一个指标。但最新版本的 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

编辑:此功能在1.3 版中实现

于 2018-07-31T13:01:40.717 回答