Changelog
All notable changes to laravel-test-lanes will be documented in this file.
1.1.1 - 2026-08-01
What's Changed
- The lock-holder-connection and unsupported-driver errors now end by pointing at
TEST_LANES_ENABLED=false, so a suite that never needed a database learns about the switch-off right where it fails. - Documented a known
--parallelquirk in the README and the Boost skill: compiled Blade view directories named for lanes linger, because Laravel's runner only cleans the ones named for the raw worker index. - Declared
symfony/processas a dev dependency and aligned the dependabot config, CI badge, and CLAUDE.md layout with the other mozex packages.
Full Changelog: 1.1.0...1.1.1
1.1.0 - 2026-08-01
What's Changed
- The package is now a drop-in: its service provider registers the lane resolver on its own whenever tests run under
APP_ENV=testing(Laravel's phpunit.xml default), so noTestCasechanges are needed. Requiring the package is the opt-in.TestLanes::register()stays public as the manual fallback for suites running under a different environment name, andTEST_LANES_ENABLED=falsestill switches everything off. - The in-memory SQLite no-op answer is no longer memoized, so an app that boots on
:memory:and later points its default connection at a real server claims a real lane instead of inheriting the no-op.
Full Changelog: 1.0.0...1.1.0
1.0.0 - 2026-08-01
What's Changed
- Every concurrent test process now claims a machine-unique lane through a database advisory lock, and the lane becomes Laravel's parallel-testing token. Databases are named
{base}_test_lane{n}, so two runs started at the same time in one project never share a database, and a killed or crashed run frees its lane on its own. - Serial runs are routed through the same machinery:
TestLanes::register()forcesLARAVEL_PARALLEL_TESTING, so a plainphp artisan testgets its own lane database instead of sharing the base one. - Postgres, MySQL, and MariaDB ship supported. Unknown drivers and
DB_URL-style connections fail loudly instead of silently sharing databases, and thelocksconfig map takes customAdvisoryLockimplementations for other drivers. - An in-memory SQLite suite is left alone, mirroring Laravel's own behavior.
- Added
test-lanes:cleanup, which drops lane databases whose locks are free and keeps any lane claimed by a live run, so it is safe to run mid-test. Storage::fake()roots are lane-scoped too, so concurrent runs stop deleting each other's fake-disk files.
Full Changelog: https://github.com/mozex/laravel-test-lanes/commits/1.0.0