NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #729 most downloaded on Packagist
Provides facilities for detecting slow tests in phpunit/phpunit.
Last release 13 days ago
24 Sep 2026
Release timing varies
gaps range from 2 weeks to 6 months
Nearly every release is documented
notes for 36 of 36 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
36 releases · first in 2023
composer(deps-dev): Bump ergebnis/composer-normalize from 2.52.0 to 2.53.0 by @dependabot [bot] in #901
ubuntu-24.04 instead of ubuntu-latest by @localheinz in #910https instead of http for monthly downloads badge by @localheinz in #911Full Changelog: 2.25.0...2.26.0
One column per quarter.
For a full diff see [2.25.0...2.26.0][2.25.0...2.26.0].
composer(deps-dev): Bump phpstan/phpstan-deprecation-rules from 2.0.4 to 2.0.5 by @dependabot [bot] in #861
phpstan/phpstan and rector/rector by @localheinz in #795ergebnis/rector-rules by @localheinz in #796true by @localheinz in #807zizmor by @localheinz in #832renew.yaml into configuration by @localheinz in #841Ergebnis\PHPUnit\SlowTestDetector as parent namespace prefix for ReferenceNamespacedSymbolsRelativeToNamespacePrefixRector by @localheinz in #797phpstan/phpstan-phpunit when running unit tests and collecting code coverage by @localheinz in #896Full Changelog: 2.24.0...2.25.0
For a full diff see [2.24.0...2.25.0][2.24.0...2.25.0].
maximum-width parameter ([#891]), by [@localheinz]Fix: Rename DefaultReporter to ConsoleReporter by @localheinz in #774
DefaultReporter to ConsoleReporter by @localheinz in #774GitHubReporter by @localheinz in #776STDERR instead of STDOUT by @localheinz in #783DurationFormatter interface by @localheinz in #784Full Changelog: 2.23.0...2.24.0
For a full diff see [2.23.0...2.24.0][2.23.0...2.24.0].
stderr option to allow directing the output of the slow test report to stderr on phpunit/phpunit:^6, phpunit/phpunit:^7, phpunit/phpunit:^8, and phpunit/phpunit:^9 ([#788]), by [@tstarling]composer(deps-dev): bump ergebnis/php-cs-fixer-config from 6.59.0 to 6.60.0 by @dependabot [bot] in #766
Full Changelog: 2.22.2...2.23.0
For a full diff see [2.22.2...2.23.0][2.22.2...2.23.0].
Fix: Exclude .docker/ directory from archive exports by @localheinz in #765
.docker/ directory from archive exports by @localheinz in #765Full Changelog: 2.22.1...2.22.2
For a full diff see [2.22.1...2.22.2][2.22.1...2.22.2].
.docker/ directory from archive exports via .gitattributes ([#765]), by [@localheinz]Fix: Rename directories and namespaces to avoid confusion by @localheinz in #763
STDERR or STDOUT depending on configuration by @localheinz in #762Full Changelog: 2.22.0...2.22.1
For a full diff see [2.22.0...2.22.1][2.22.0...2.22.1].
stderr when PHPUnit is configured with stderr="true" in phpunit.xml for phpunit/phpunit:^10.0.0, phpunit/phpunit:^11.0.0, phpunit/phpunit:^12.0.0, phpunit/phpunit:^13.0.0 ([#762]), by [@localheinz]Fix: Create release in draft mode, upload assets, and then publish release by @localheinz in #759
phpunit/phpunit:^7.5.0 only by @localheinz in #761DefaultReporter by @localheinz in #760Full Changelog: 2.21.0...2.22.0
For a full diff see [2.21.0...2.22.0][2.21.0...2.22.0].
Fix: Ignore CVE-2026-24765 by @localheinz in #754
Makefile targets by @localheinz in #755phpunit/phpunit:^12.0.0 by @localheinz in #756phpunit/phpunit:^13.0.0 by @localheinz in #757@maximumDuration annotation when test-cases have no test methods by @courtney-miles in #687Full Changelog: 2.20.0...2.21.0
For a full diff see [2.20.0...2.21.0][2.20.0...2.21.0].
phpunit/phpunit:^13.0.0 ([#757]), by [@localheinz]@maximumDuration annotation when a test case does not have any test methods ([#687]), by [@courtney-miles]CVE-2026-24765 security advisory in composer.json configuration because this package needs to support versions of phpunit/phpunit affected by this vulnerability ([#754]), by [@localheinz]github-actions(deps): Bump shivammathur/setup-php from 2.32.0 to 2.33.0 by @dependabot [bot] in #680
Full Changelog: 2.19.1...2.20.0
For a full diff see [2.19.1...2.20.0][2.19.1...2.20.0].
Fix discovery of @maximumDuration annotation when using data providers by @morgan-atproperties in #675
@maximumDuration annotation when using data providers by @morgan-atproperties in #675Full Changelog: 2.19.0...2.19.1
For a full diff see [2.19.0...2.19.1][2.19.0...2.19.1].
@maximumDuration annotation when using data providers ([#675]), by [@morgan-atproperties]Enhancement: Extract TestDuration and MaximumDuration by @localheinz in #662
TestDuration and MaximumDuration by @localheinz in #662MaximumCount by @localheinz in #663SlowTestList by @localheinz in #658phpunit/php-timer, but always showing minutes by @localheinz in #664Full Changelog: 2.18.0...2.19.0
For a full diff see [2.18.0...2.19.0][2.18.0...2.19.0].
phpunit/php-timer:^4.0.0, but always showing minutes ([#664]), by [@localheinz]Fix: Do not attempt to remove psalm/plugin-phpunit and vimeo/psalm by @localheinz in #652
psalm/plugin-phpunit and vimeo/psalm by @localheinz in #652phpunit/phpunit:8.5.40 by @localheinz in #655phpunit/phpunit:^12.0.0 by @localheinz in #651Full Changelog: 2.17.0...2.18.0
For a full diff see [2.17.0...2.18.0][2.17.0...2.18.0].
phpunit/phpunit:^12.0.0 ([#651]), by [@localheinz]For a full diff see [2.16.1...2.17.0][2.16.1...2.17.0].
For a full diff see [2.16.1...2.17.0][2.16.1...2.17.0].
For a full diff see [2.16.0...2.16.1][2.16.0...2.16.1].
For a full diff see [2.16.0...2.16.1][2.16.0...2.16.1].
vendor/composer/installed.php and vendor/composer/InstalledVersions.php when building PHAR ([#621]), by [@dantleech]For a full diff see [2.15.1...2.16.0][2.15.1...2.16.0].
For a full diff see [2.15.1...2.16.0][2.15.1...2.16.0].
For a full diff see [2.15.0...2.15.1][2.15.0...2.15.1].
For a full diff see [2.15.0...2.15.1][2.15.0...2.15.1].
src/ directory when building PHAR ([#598]), by [@localheinz]For a full diff see [2.14.0...2.15.0][2.14.0...2.15.0].
For a full diff see [2.14.0...2.15.0][2.14.0...2.15.0].
For a full diff see [2.13.0...2.14.0][2.13.0...2.14.0].
For a full diff see [2.13.0...2.14.0][2.13.0...2.14.0].
phpunit/phpunit:^6.5.0 ([#533]), by [@localheinz]For a full diff see [2.12.0...2.13.0][2.12.0...2.13.0].
For a full diff see [2.12.0...2.13.0][2.12.0...2.13.0].
For a full diff see [2.11.0...2.12.0][2.11.0...2.12.0].
For a full diff see [2.11.0...2.12.0][2.11.0...2.12.0].
For a full diff see [2.10.0...2.11.0][2.10.0...2.11.0].
For a full diff see [2.10.0...2.11.0][2.10.0...2.11.0].
For a full diff see [2.9.0...2.10.0][2.9.0...2.10.0].
For a full diff see [2.9.0...2.10.0][2.9.0...2.10.0].
phpunit/phpunit:^11.0.0 ([#485]), by [@localheinz]phpunit-slow-test-detector.phar with phpunit/phpunit:^9.0.0 ([#491]), by [@localheinz]phpunit-slow-test-detector.phar with phpunit/phpunit:^8.5.19 ([#494]), by [@localheinz]phpunit-slow-test-detector.phar with phpunit/phpunit:^7.5.0 ([#495]), by [@localheinz]For a full diff see [2.8.0...2.9.0][2.8.0...2.9.0].
For a full diff see [2.8.0...2.9.0][2.8.0...2.9.0].
phpunit/phpunit:^7.5.0 ([#448]), by [@localheinz]For a full diff see [2.7.0...2.8.0][2.7.0...2.8.0].
For a full diff see [2.7.0...2.8.0][2.7.0...2.8.0].
phpunit/phpunit:^7.2.0 ([#447]), by [@localheinz]For a full diff see [2.6.0...2.7.0][2.6.0...2.7.0].
For a full diff see [2.6.0...2.7.0][2.6.0...2.7.0].
phpunit/phpunit:^8.5.19, phpunit/phpunit:^9.0.0, and phpunit/phpunit:^10.0.0 ([#396]), by [@localheinz]For a full diff see [2.5.0...2.6.0][2.5.0...2.6.0].
For a full diff see [2.5.0...2.6.0][2.5.0...2.6.0].
phpunit/phpunit:^8.5.36 ([#394]), by [@localheinz]For a full diff see [2.4.0...2.5.0][2.4.0...2.5.0].
For a full diff see [2.4.0...2.5.0][2.4.0...2.5.0].
Attribute\MaximumDuration to allow configuration of maximum duration with attributes on test method level ([#367]), by [@HypeMC]For a full diff see [2.3.2...2.4.0][2.3.2...2.4.0].
For a full diff see [2.3.2...2.4.0][2.3.2...2.4.0].
phpunit/phpunit:^9.6.0 ([#341]), by [@localheinz]Duration ([#351]), by [@localheinz]MaximumDuration into Duration ([#352]), by [@localheinz]MaximumCount to Count ([#353]), by [@localheinz]Time ([#354]), by [@localheinz]TestIdentifier ([#355]), by [@localheinz]phpunit/phpunit:^10.4.2 ([#357]), by [@localheinz]DefaultDurationFormatter as internal ([#350]), by [@localheinz]For a full diff see [2.3.1...2.3.2][2.3.1...2.3.2].
For a full diff see [2.3.1...2.3.2][2.3.1...2.3.2].
manifest.xml ([#343]), by [@localheinz]For a full diff see [2.3.0...2.3.1][2.3.0...2.3.1].
For a full diff see [2.3.0...2.3.1][2.3.0...2.3.1].
phpunit/phpunit in PHAR ([#342]), by [@localheinz]For a full diff see [2.2.0...2.3.0][2.2.0...2.3.0].
For a full diff see [2.2.0...2.3.0][2.2.0...2.3.0].
For a full diff see [2.1.1...2.2.0][2.1.1...2.2.0].
For a full diff see [2.1.1...2.2.0][2.1.1...2.2.0].
phpunit/phpunit as a development dependency to allow usage with phpunit/phpunit when installed as PHAR ([#272]), by [@localheinz]For a full diff see [2.1.0...2.1.1][2.1.0...2.1.1].
For a full diff see [2.1.0...2.1.1][2.1.0...2.1.1].
phpunit with the --no-output option ([#243]), by [@localheinz]For a full diff see [2.0.0...2.1.0][2.0.0...2.1.0].
For a full diff see [2.0.0...2.1.0][2.0.0...2.1.0].
For a full diff see [1.0.0...2.0.0][1.0.0...2.0.0].
For a full diff see [1.0.0...2.0.0][1.0.0...2.0.0].
maximum-duration parameter ([#212]), by [@localheinz]maximum-count parameter ([#217]), by [@localheinz]phpunit/php-timer ([#220]), by [@localheinz]@maximumDuration annotation ([#222]), by [@localheinz]MAXIMUM_NUMBER environment variable ([#211]), by [@localheinz]3 to 10 and default maximum duration from 125 to 500 milliseconds ([#218]), by [@localheinz]@slowThreshold annotation ([#221]), by [@localheinz]For a full diff see [7afa59c...1.0.0][7afa59c...1.0.0].
For a full diff see 7afa59c...1.0.0.
SlowTest (#6), by @localheinzSlowTestCollector (#8), by @localheinzSubscriber\TestPreparedSubscriber (#12), by @localheinzSubscriber\TestPassedSubscriber (#13), by @localheinzFormatter\ToMillisecondsDurationFormatter (#17), by @localheinzComparator\DurationComparator (#18), by @localheinzSlowTestReporter (#19), by @localheinzTimeKeeper (#22), by @localheinzCollector (#23), by @localheinzSubscriber\TestSuiteFinishedSubscriber (#34), by @localheinzMaximumDuration (#46), by @localheinzMaximumCount (#47), by @localheinz@slowThreshold annotation (#49), by @localheinzSlowTestReporter to Reporter\Reporter (#20), by @localheinzReporter\Reporter to Reporter\DefaultReporter and extracted Reporter\Reporter interface (#21), by @localheinzCollector to Collector\DefaultCollector and extracted Collector\Collector interface (#24), by @localheinzTimeKeeper instead of SlowTestCollector in Subscriber\TestPreparedSubscriber (#25), by @localheinzTimeKeeper and Collector\Collector instead of SlowTestCollector in Subscriber\TestPassedSubscriber (#26), by @localheinzSlowTest (#37), by @localheinzDefaultReporter (#38), by @localheinzSlowTestCollector (#36), by @localheinzYour coding agent can read these notes before it upgrades. Set up the MCP server →