Link Search Menu Expand Document

Base Plugin


Bug Fix: Swap Mutator Not Properly Isolated

In some circumstances the SWAP_PARAMS mutator interfered with the analysis of other mutants, resulting in false positives (mutation incorrectly killed).


Enhancement: Filter Uncovered Mutants

Mutants without coverage can now be excluded from the report by activating the feature +nouncovered.

As uncovered mutants have a very low processing cost, filtering them does not greatly reduce analysis times. It may be desirable to exclude them when using git integration in mixed or test only mode.


If the plugin is not supplied with the project base dir and dynamic licensing is not being used, it must search backwards for a licence file. This release expands the scope of that search.


Bug Fix: IndexOutOfBoundsException When Using Parameter Swap Mutator

Some users observed IndexOutOfBoundsExceptions when using the SWAP_PARAMS mutator on Kotlin codebases.

This was traced to an issue in how type signatures were parsed when filtering out junk instances of this mutation.


New Feature: Improved Descriptions Lambda Mutations

The base plugin now updates the descriptions of mutants within lambdas and other compiler constructs to be more human readable.

For example for

  boolean foo(List<String> list) {
      .filter(s -> s.startsWith("dog"))

Pitest will produce a mutant with a description like

replaced boolean return with true for com/example/SomeClass::lambda$foo$1

This will be converted to

replaced boolean return with true for 1st lambda in foo

Note, this feature was previously available only for Arcmutate Pro subscribers, but has now been included in the base plugin.


Enhancement: Improved Filtering of Equivalent Reactive Returns Mutants

Improvements to filtering of equivalent mutants in methods with reactive return types such as reactor.core.publisher.Flux and io.reactivex.rxjava3.core.Maybe.

New Feature: Exclusions