liuggio/fastest
Run tests in parallel with a simple CLI wrapper. Fastest executes any command (PHPUnit, Behat, etc.) across available CPU cores, randomizes test order, supports piping test lists or phpunit.xml, adds verbosity flags, and helps functional tests use one DB per process.
paratest or parallel.fastest as a configurable option in test runners (e.g., --parallel flag in custom scripts).fastest against native parallel runners (e.g., GitHub Actions’ matrix or parallel jobs).fastest + phpunit in VS Code tasks).Adopt When:
matrix, CircleCI’s parallelism), or they’re too complex for your needs.fastest), reducing flakiness from order dependency.Look Elsewhere If:
fastest adds overhead).fastest is PHP-only).job parallelism).__DBNAME__ setup; not plug-and-play).variables-order in php.ini).*"Fastest cuts our functional test suite from 30 minutes to 7 minutes—a 4x speedup—without adding engineering overhead. This directly reduces:
- Developer frustration (faster feedback loops).
- CI costs (fewer minutes billed on AWS/GCP).
- Release cycle time (unblocked merges).
It’s a drop-in solution for PHP projects using PHPUnit/Behat, with zero maintenance (MIT-licensed, actively updated). For a team running 100+ tests daily, this saves ~20 hours/month—equivalent to half a FTE. We’re proposing a POC in Q2 to validate ROI in our CI pipeline."*
*"Fastest is a lightweight, PHP-native parallel test executor that:
- Isolates databases per process (critical for functional tests with side effects).
- Supports Behat, PHPUnit, and custom commands (no vendor lock-in).
- Merges coverage reports (no manual post-processing).
- Works locally and in CI (no cloud-specific dependencies).
Why not alternatives?
paratest: Fails on complex projects; no DB isolation.- Native CI parallelism: Overkill for PHP; adds orchestration complexity.
Implementation:
- Add
liuggio/fastesttocomposer.json(dev dependency).- Replace
phpunitwithfastest "vendor/bin/phpunit {}"in CI scripts.- Configure DB adapters (Doctrine/SQLite) for isolation. Risk: Minimal—package is battle-tested (used by 484+ repos)."*
How can I help you explore Laravel packages today?