Releases: szpak/gradle-pitest-plugin
1.15.0
- Automatically add
junit-platform-launcher
dependency totestRuntimeOnly
for JUnit Platform projects - #337 - help from Björn Kautler - Remove deprecated
Project.getConvention()
usage (in Gradle 8.2+) - #343 - PIT 1.15.0 by default
- Basic regression testing with Gradle up to 8.3
Compatibility notes
Starting with PIT 1.14.0 (with pitest-junit-plugin 1.2.0+) junit-platform-launcher
is no longer shaded and has to be explicitly added to avoid:
"Minion exited abnormally due to UNKNOWN_ERROR" or "NoClassDefFoundError: org.junit.platform.launcher.core.LauncherFactory".
As an experimental (incubating) feature, junit-platform-launcher
is automatically added to the testRuntimeOnly
configuration for the JUnit Platform projects.
PLEASE NOTE. This feature is experimental and might not work as expected in some corner cases. In that situation, just disable it with addJUnitPlatformLauncher = false
and add the required dependency 'junit-platform-launcher' in a proper version to 'testRuntimeOnly' manually. More information: #337
1.9.11
- Support for thresholds in aggregated metrics (requires PIT 1.9.9+) - #319 - PR by pfoerd
- Support for
verbosity
flag, "spinner" disabled by default - #267 - PR by Carsten Otto - PIT 1.9.11 by default
- Do not produce timestamped reports by default for PIT 1.9.6+ - suggestion by Siddardha Bezawada
- Minimal supported PIT version is 1.7.1 (due to "verbosity" flag used by default)
- Deprecate
verbose
flag -verbosity
is much more versatile, especially when used from the Gradle plugin
Compatibility notes
- Due to the usage of the "verbosity" flag by default, the minimal supported PIT version is 1.7.1 (released 2021-09-29).
- Due to the changes in PIT 1.9.6, timestamped reported are not generated by default (with PIT 1.9.6+). It still can be enforced in the GPP configuration.
1.9.0
- PIT 1.9.4 by default (requires pitest-junit5-plugin 1.0.0!)
- Deprecate support for JDK 8 - #299
- Support for
inputEncoding
andoutputEncoding
(named in plugininputCharset
andoutputCharset
) - #310 - Add pitest dependencies only during configuration resolution - #313 - PR by Ian O'Malley
- Improve build cache hit cache with relative path - #315 - PR by Siddardha Bezawada
- Remove (optional)
dependencyDistance
configuration parameter removed in PIT 1.9.0 - #311
Compatibility notes
- Due to the plugin API changes in PIT 1.9.0, the new pitest-junit5-plugin 1.0.0 is required (other PIT plugins - if used - also need to be upgraded).
- The plugin is released with JDK 11. Source/class compatibility is still set to JDK 8, but this might change without notice.
1.7.4
- Do not pass
--testPlugin
for PIT 1.6.7+ for forward compatibility - #277 - Deprecate
testPlugin
configuration parameter (not needed in PIT 1.6.7+, to be removed in PIT 1.8.0) - #277 - PIT 1.7.4 by default
- Upgrade Gradle wrapper to 6.9.2
- Test for exclusion of certain mutators - #303 - PR by Narendra Pathai
Compatibility notes:
- The
testPlugin
configuration parameter is deprecated and should not be used. In fact, starting with 1.6.7 it is no longer used (it is enough to add the PIT plugin as a buildscript dependency or just setjunit5PluginVersion
to use the JUnit 5 plugin). In addition, that property is planned to be removed in PIT 1.8.0. - Using
junit5PluginVersion
no longer internally settestPlugin
property. For using with old PIT (<1.6.7) it is required to set it explicitly in configuration.
1.7.0
- Support for Gradle configuration cache - #249 - PR by David Burstrom
- Turn on cacheability for
PitestTask
- #67 - PR by David Burstrom - PIT 1.7.0 by default
- Fix deprecation warnings in Gradle 7 - #283 - PR by Mike Duigou
- Bump minimal supported Gradle version to 6.4 - required to fix deprecation warnings in Gradle 7
- Remove unused
maxMutationsPerClass
configuration parameter - #266 - Regression tests for JUnit Jupiter 5.8 (with JUnit Platform 1.8) and pitest-junit5-plugin 0.15
- Upgrade Gradle wrapper to 6.9.1
- Switch CI from defunct travis-ci.org to travis-ci.com
Compatibility notes:
- Gradle 6.4+ is required (to fix deprecation warnings in Gradle 7)
- Not directly related with this plugin, but keep in mind that JUnit Jupiter 5.8 (JUnit Platform 1.8) requires pitest-junit5-plugin 0.15+, while 5.7 (1.7) requires <=0.14. Set right plugin version for JUnit 5 version used in your project to avoid runtime errors (such as
NoSuchMethodError: 'java.util.Optional org.junit.platform.commons.util.AnnotationUtils.findAnnotation(java.lang.Class, java.lang.Class, boolean)'
- see #300). - Due to the internal changes in PIT 1.7.0 (#630):
- all history files should be deleted before upgrading
- the names of the remove conditionals mutators have changed slightly (it might be needed to update their names in
build.gradle
, if activated explicitly)
1.6.0
- Report aggregation for multi-project builds - #243 - PR by Mike Safonov
- Support new configuration property
testStrengthThreshold
(PIT 1.6.1+) - #247 - PR by Michael Hönnig - PIT 1.6.3 by default
- Regression tests also with Gradle 7 (milestone)
- Upgrade Gradle wrapper to 6.8.3
- Remove deprecated
mutateStaticInits
andincludeJarFiles
Sample configuration for the new report aggregation feature:
//in root project configuration
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'info.solidsoft.gradle.pitest:gradle-pitest-plugin:...'
}
}
apply plugin: 'info.solidsoft.pitest.aggregator' // to 'pitestReportAggregate' appear
subprojects {
apply plugin: 'info.solidsoft.pitest'
pitest {
// export mutations.xml and line coverage for aggregation
outputFormats = ["XML"]
exportLineCoverage = true
...
}
}
After the pitest pitestReportAggregate
tasks execution, the aggregated report will be placed in the ${PROJECT_DIR}/build/reports/pitest
directory.
1.5.2
- Support java-test-fixtures plugin - #223 - PR by Piotr Kubowicz
- PIT 1.5.2 by default
- Add functional test with Spock 2 (using JUnit Platform)
- Bump minimal supported PIT version to 1.4.0 - the first version which required Java 8 (May 2018)
- Upgrade Gradle wrapper to 6.6
1.5.1
1.5.0 - breaking changes
- Move
pitest
configuration from root project to current project to eliminate Gradle 6+ warning - #62 - Upgrade Gradle wrapper to 6.3 (ability to build with Java 14)
Compatibility changes. This version finally relaxes the need to create pitest
configuration in the root project. This was problematic especially with Android projects and also started to generate deprecation warnings in Gradle 6.
The migration steps are required only in project manually adding custom PIT plugins. For example:
buildscript { //only in gradle-pitest-plugin <1.5.0
//...
configurations.maybeCreate('pitest')
dependencies {
pitest 'org.example.pit.plugins:pitest-custom-plugin:0.42'
}
}
pitest {
testPlugin = 'custom'
//...
}
should be replaced with:
//only in gradle-pitest-plugin 1.5.0+
//in project (not buildscript) dependencies and without needto create "pitest" configuration manually
dependencies {
pitest 'org.example.pit.plugins:pitest-custom-plugin:0.42'
}
pitest {
testPlugin = 'custom'
//...
}
Please also note that the users of the new JUnit 5 PIT plugin configuration mechanism with junit5PluginVersion
are not affected.
1.4.9
- Fix regression in 1.4.8 related to missing source listing in PIT reports - #198
- migrate remaining configuration properties to Lazy Configuration API
- more corner cases tested