是否有可能在PIT变异测试中,只要有任何一个变异失败就使Maven构建失败,而不是检查变异覆盖率是否达标?

4
我正在为我的项目使用pitest-maven插件,并希望在任何失败的变异情况下使maven构建失败。 但我无法看到允许我这样做的配置选项。我可以看到mutationThreshold和coverageThreshold,但两者都不起作用。 理想情况下,我想使用PIT确保我编写的测试不会失败任何变异,而不是尝试满足一个全面的覆盖率指标。 有没有办法做到这一点? 当前的maven配置:
<plugin>
    <groupId>org.pitest</groupId>
    <artifactId>pitest-maven</artifactId>
    <version>1.4.0</version>
    <configuration>
        <mutationThreshold>100</mutationThreshold>
    </configuration>
</plugin>
2个回答

2

如果你希望在任何一个变异测试不失败时使PIT失败,那么你只需要将mutationThreshold设置为100,这意味着覆盖所有生成的变异。


那是我的第一步,但一旦我解决了报告输出中的所有变异,构建仍然失败,因为突变覆盖率低于100,而单元测试覆盖率也很低。 - zodac
如果您不需要它,可以忽略coverageThreshold - Darren Forsythe
我已经更新了我的Maven配置,并没有使用覆盖率阈值。我检查了我包的报告,发现没有突变失败,但是由于总体“分数”小于100,构建失败了。 - zodac

1

最近版本的pitest(我想是1.6.2+)包括测试强度阈值,只考虑覆盖的代码(也就是说,如果应该因未覆盖的行而导致构建失败,您需要添加额外的覆盖限制)。

   /**
   * Test strength score threshold at which to fail build
   */
  @Parameter(defaultValue = "0", property = "testStrengthThreshold")
  private int                         testStrengthThreshold;
相关:


1
嘿,感谢您晚点发布的信息!目前并没有在使用PIT开发任何项目,但是我一定会在有时间时尝试的。 :) - zodac

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,