Releases: pestphp/pest
v4.7.0
v4.6.3
chore: bumps phpunit
v4.6.2
fix: bumps phpunit, as previous versions became invalid due GHSA-qrr6-mg7r-m243
v4.6.1
- fix: up to 30% faster boot times before your test suite runs (measured on laravel cloud)
- fix: if you pass --filter or a test file, --update-snapshots now only updates the snapshots that match
v4.6.0
- feat: time based sharding by @nunomaduro in #1671
For better shard balance, Pest can distribute tests based on their actual execution time using the --update-shards option. This ensures each shard takes roughly the same wall-clock time, minimizing how long your slowest CI job runs.
Step 1: Generate the timing data by running your full test suite with --update-shards:
./vendor/bin/pest --update-shardsThis runs all tests and records each test class's duration into tests/.pest/shards.json. You can also combine it with --parallel to speed things up:
./vendor/bin/pest --parallel --update-shardsStep 2: Commit tests/.pest/shards.json to your repository. This file is human-readable and looks like this:
{
"timings": {
"Tests\\Feature\\Payments\\StripeCheckoutTest": 1.608,
"Tests\\Feature\\Reports\\SalesReportTest": 2.105,
"Tests\\Unit\\Models\\UserTest": 0.050
},
"checksum": "...",
"updated_at": "2026-04-14T10:30:00+00:00"
}Step 3: When you run --shard and tests/.pest/shards.json exists, Pest automatically uses time-balanced distribution:
./vendor/bin/pest --shard=1/5The output will indicate that time-balanced sharding is active:
Shard: 1 of 5 — 12 files ran, out of 50 (time-balanced).
v4.5.0
Announcement: x.com/enunomaduro/status/2042697927483609449
- feat:
flakyand--flakyby @nunomaduro - feat:
toBeCasedCorrectlyarch test assertion by @SimonBroekaert and @nunomaduro in #1455 - feat: add '--only-covered' option to '--coverage' by @SimonBroekaert in #1626
- fix: typo in
Pest.phpin stubs by @orphanedrecord in #1653 - fix:
toUseTraitto detect inherited and nested traits by @yondifon in #1515 - fix: missing classes before
toExtendonlaravelpreset by @treyssatvincent in #1569 - fix: add "Rules" to
laravelpreset by @bibrokhim in #1580 - fix: enhance support for
--paralleland--teamcityarguments by restoring--teamcityfor ParaTest and fixing teamcity output concurrency by @smirok in #1615 - fix: nested dataset discovery and parallel invalid-dataset reporting by @stsepelin in #1655
- fix: preserve unicode characters in filenames for
--filtermatching by @Vmadmax in #1624 - fix: dataset named parameters by @dbpolito in #1634
- fix: parameter closure this type annotations in functions by @DevDavido in #1628
- fix: dataset inheritance with method chaining (beforeEach()->with(), describe()->with()) by @louisbels in #1565
v4.4.6
- chore: stores statically the test result for
pao
v4.4.5
- style changes
v4.4.4
- style changes
v4.4.3
chore: bumps phpunit