kylekatarnls/multi-tester
Run unit tests across multiple Composer projects after changing a shared package. Multi-tester swaps your local package into dependent projects’ vendor dirs and runs their test suites (Travis CI-style supported), catching integration breakages early.
illuminate/, spatie/, laravel/) to validate changes pre-release, reducing cascading failures..multi-tester.yml or JSON, allowing granular control over test workflows (clone, install, script execution). Supports multi-version testing (e.g., Laravel 9.x–11.x) and Travis/GitHub Actions out of the box.vendor/ directories, enabling real-world validation without manual setup.MULTITEST='on' to .travis.yml). Example:
script:
- if [ "$MULTITEST" = "on" ]; then vendor/bin/multi-tester; fi;
.multi-tester.yml, reducing duplication and easing maintenance. Supports inheritance (e.g., default settings for all projects).replace keys, monorepos). Mitigate by:
laravel/framework).--verbose to debug failures.multi-tester in parallel (Travis/GitHub Actions matrix).stop_on_failure to fail fast.version constraints in .multi-tester.yml (e.g., symfony/symfony:5.4.*).dependents count (e.g., spatie/laravel-permission).multi-tester jobs? If not, stagger testing by package version.multi-tester failures vs. unit tests.multi-tester block releases (e.g., GitHub branch protection)?.multi-tester.yml as dependencies evolve? Assign ownership to the package maintainer.multi-tester?composer.json; no Laravel-specific requirements.MULTITEST='on' to matrix jobs (see README).php environment:
jobs:
multi-tester:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
- run: composer install
- run: vendor/bin/multi-tester
vendor/bin/multi-tester manually to validate changes before pushing.laravel/framework, spatie/laravel-permission)..multi-tester.yml with minimal settings (default clone, install, script).laravel/framework:
version: ^10.0
spatie/laravel-permission:
version: ^5.0
multi-tester to existing CI jobs (Travis/GitHub Actions).stop_on_failure: true to fail fast during pilot.tightenco/ziggy, laravel/sanctum).laravel/framework:9.*, laravel/framework:10.*)..multi-tester.yml when new Laravel versions release.laravel/framework releases and update version constraints.replace, autoload, and allow-plugins (critical for Laravel packages).clone/install commands.script in .multi-tester.yml if needed.multi-tester locally → Fixes failures → Commits.multi-tester runs in CI → Blocks merge if tests fail → Alerts team.multi-tester failures in error tracking tools (e.g., Sentry, Bugsnag)..multi-tester.yml if new dependencies emerge..multi-tester.yml may need updates as:
phpunit → pest).composer.json of dependencies for version changes.travis vs. custom scripts..multi-tester.yml syntax..multi-tester.yml.template for new packages.--verbose to log clone/install/script steps.packagist.org/github.com requests.setup-php@v2).| Issue Type | Owner | Resolution Time |
|---|---|---|
| Config syntax errors | Package maintainer | <1 hour |
How can I help you explore Laravel packages today?