Pitest (aka PIT) is a state of the art mutation testing system for Java and the JVM.
Read all about it at http://pitest.org
Due to internal changes some third party plugins maybe incompatible with this release.
All history files should be deleted before upgrading.
The names of the remove conditionals mutators have changed slightly as a result of #930 and may need to be updated in build scripts if explicitly activated.
As a result of #900 the
testPlugin parameter is now defunct, but pitest will continue to accept it without error for this release. Pitest will use any test-engines supplied on the classpath, falling back to the built in JUnit4 support when other test engines cannot handle the class.
useClasspathJaroption (thanks @jqhan)
Note when upgrading that history files generated by previous releases are not compatible with 1.3.2 an above.
428 changes the existing behaviour of the excludedClasses filter. Previously this excluded classes from both being mutated and run as tests which may require changes for some people when upgrading.
As a result of 429 TestNG tests will no longer be automatically detected - the new
testPlugin parameter must be explicitly set to "testng".
(Note #347 will not detect
javax.annotaion.Generated as it has only source retention.)
Note - as of this release the maven plugin will automatically determine which classes to mutate instead of assuming that the package names match the group id.
Note this release contains a known issue (#231). Please upgrade.
Please note that any stored history files or sonar results are invalidated by this release.
Note, setup for Ant based projects changes in this release. See ant setup for details on usage.
This release also changes a number of internal implementation details, some of which may be of interest/importance to those maintaining tools that integrate with PIT.
Mutations are now scoped internally as described in https://groups.google.com/forum/#!topic/pitusers/E0-3QZuMYjE
A new class (org.pitest.mutationtest.tooling.EntryPoint) has been introduced that removes some of the duplication that existed in the various ways of launching mutation analysis.
Known issue - Fix for #33 may not resolve issue for maven 2 users.
Detection of Groovy code has not yet been tested with Groovy 2 which may generate substantially different byte code to earlier versions.
Upgrading users may need to modify their build due to removal of the inScopeClasses parameter
Known issue - The new member variable mutator may cause errors in synchronized errors. The mutator is however disabled by default, and the generated errors are correctly handled by PIT.
Please consult our issue management rules before creating or working on issues.
Pitest is mainly the work of me but has benefited from contributions from many others.
Notable contributions not visible here as they were made before this code was migrated to github include
Although PIT does not incorporate any code from the Jumble project (http://jumble.sourceforge.net/), the Jumble codebase was used as a guide when developing some aspects of PIT.
The codebase is checked up on in a few places that give slower feedback than the github hooks.