【问题标题】:Possible to fail maven build when any PIT mutation fails, rather than mutation coverage?当任何 PIT 突变失败时,maven 构建可能会失败,而不是突变覆盖?
【发布时间】:2019-07-20 03:47:12
【问题描述】:

我正在为我的项目使用 ptest-maven 插件,如果有任何突变失败,我希望 maven 构建失败。

但我看不到允许我这样做的配置选项。我可以看到 mutationThresholdcoverageThreshold,但这些都不起作用。

理想情况下,我想使用 PIT 来确保我编写的测试不会失败任何突变,而不是尝试满足一揽子覆盖率指标。

有什么办法吗?

当前的maven配置:

<plugin>
    <groupId>org.pitest</groupId>
    <artifactId>pitest-maven</artifactId>
    <version>1.4.0</version>
    <configuration>
        <mutationThreshold>100</mutationThreshold>
    </configuration>
</plugin>

【问题讨论】:

    标签: java maven pitest


    【解决方案1】:

    如果您希望 PIT 在突变测试不失败的任何时候失败,您只需将 mutationThreshold 设置为 100 意味着完全覆盖生成的所有突变。

    【讨论】:

    • 这是我的第一步,但是一旦我解决了所有突变(来自报告输出)l,由于单元测试覆盖率低,突变覆盖率低于 100,构建仍然失败。跨度>
    • 如果您不需要,可以将coverageThreshold 留在外面。
    • 我已经用我的 maven 配置更新了 OP,我没有使用覆盖阈值。我检查了我的包的报告,没有一个突变失败,但构建失败,因为总“分数”小于 100。
    【解决方案2】:

    pitest 的最新版本(我认为是 1.6.2+)包含一个测试强度阈值,它只考虑被覆盖的代码(即,如果构建因未覆盖的行而失败,您需要添加一个额外的覆盖限制) .

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

    相关:

    【讨论】:

    • 嘿,非常感谢您稍后发布!目前还没有使用 PIT 进行任何工作,但是当我有时间时,我肯定会尝试一下。 :)
    猜你喜欢
    • 2015-11-27
    • 2020-11-05
    • 2010-11-26
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    • 2023-02-11
    • 2020-06-25
    • 1970-01-01
    相关资源
    最近更新 更多