Downloads and repository info




google group:



Historic releases

These are old releases from before pitest was migrated to github. Please see for recent releases.

Binaries for all releases can be found on maven central.


  • restores java 7 compatibility
  • new remove conditionals mutator
  • support for mutating static initializers with TestNG
  • properly isolate classpaths when running via Ant
  • break builds on coverage threshold
  • allow JVM to be specified
  • support user defined test selection strategies
  • support user defined output format
  • support user defined test prioritisation
  • fix for issue blocking usage with Robolectric

Note, setup for Ant based projects changes in this release. See ant setup for details on usage.


  • Maven 2 compatibility restored
  • Much faster line coverage calculation
  • Fix for issue 78 - Error when PowerMockito test stores mock as member

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!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.


  • Support for parametrized Spock tests
  • Support for JUnitParams tests
  • Fix for issue 73 - JUnit parameterised tests calling mutee during setup failing during mutation phase
  • Fix to issue 63 - ant task fails when empty options supplied
  • Ability to override maven options from command line
  • Ability to fail a build if it does not achieve a given mutation score
  • Performance improvement when tests use @BeforeClass or @AfterClass annotations
  • Slightly improved scheduling over multiple threads
  • Improved maven multi project support
  • Integration with source control for maven users


  • Incremental analysis (–historyInputLocation and –historyOutputLocation)
  • Inlined code detection turned on by default
  • Quieter logging by default
  • Improved Java 7 support
  • Upgrade of ASM from 3.3 to 4
  • Fix for concurrency issues during coverage collection
  • Fix for issue 53 - problems with snapshot junit versions
  • Fix for issue 59 - duplicate dependencies set via maven


  • Inlined finally block detection (–detectInlinedCode)
  • New experimental switch statement mutator (contributed by Chris Rimmer)
  • Do not mutate Groovy classes
  • Fix for issue 33 - set user.dir to match surefire
  • Fix for issue 43 - optionally suppress timestamped folders (–timestampedReports=true/false)
  • Fix for issue 44 - concurrent modification exception when gathering coverage
  • Fix for issue 46 - incorrect setting of flags by ant task
  • Smaller memory footprint for main process
  • Faster coverage gathering for large codebases
  • Faster classpath scanning for large codebases
  • Support for JUnit 3 suite methods
  • Fixes for incorrect detection of JUnit 3 tests

Known issue - Fix for issue 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.


  • Much prettier reports
  • Now avoids mutating assert statements
  • Removed inScopeClasses option - use targetClasses and targetTests instead
  • Fix for 100% CPU usage when child JVM crashes
  • Fix for issues 35/38 - experimental member variable mutator now corrects stack
  • Fix for issue 39 - order of classpath elements now maintained when running from maven

Upgrading users may need to modify their build due to removal of the inScopeClasses parameter


  • Ant support
  • New experimental mutator for member variables
  • Fix for issues 12/27 - no longer hangs when code under test launches non daemon threads
  • Fix for issue 26 - now warns when no test library found on classpath
  • Fix for issue 30 - now errors if mutated classes have no line or source debug
  • Fix for issue 32 - now correctly handles of JUnit assumptions

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.


  • TestNG support (experimental)
  • Fix for issue where mutations in nested classes not isolated from each other
  • Fix for broken classpath isolation for projects using xstream
  • Improved handling of JUnit parametrized tests
  • Ability to limit mutations to specific classpath roots (–mutableCodePaths)
  • Ability to add non launch classpath roots (–classPath) (experimental)
  • Read configuration values from XML (experimental)
  • Option to not throw error when no mutations found
  • Consistent ordering of classes in HTML report
  • Statistics written to console
  • Classes no longer loaded during initial classpath scanning
  • New syntax to easily enable all mutation operations


  • JMockit support
  • Option to output results in XML or CSV
  • Fix for issue 11
  • Improved INLINE_CONSTS mutator


  • Fix for issue 7 - source files not located


  • Upgrade of Xstream to 1.4.1 to enable OpenJDK 7 support
  • Fix for issue 5 - corruption of newline character in child processes
  • Ability to set child process launch arguments


  • Significant performance improvements
  • Support for powermock via both classloader (requires PowerMockIgnore annotation) and java agent
  • Minor error reporting and usability improvements
  • Fix for major defect around dependency analysis
  • PIT dependencies no longer placed on classpath when running via maven
  • Support for excluding certain classes or tests
  • Support for verbose logging


  • Limit number of mutations per class
  • Upgrade xstream to 1.3.1
  • Make available from maven central


  • Built in enum methods now excluded from mutation
  • Fixed bug around reporting of untested classes
  • Support for excluding tests greater than a certain distance from class
  • Support for excluding methods from mutation analysis
  • Performance improvements
  • Removed support for launching mutation reports from JUnit runner


  • First public release