- How do I install recca0120/laravel-parallel in a Laravel app?
- Install it as a dev dependency with composer require --dev recca0120/laravel-parallel. Laravel package auto-discovery registers the service provider, so there is usually no manual binding step. Commit the composer.json and composer.lock changes so CI installs the same pinned version. Because it is dev-only tooling, it never needs to be installed in production.
- Which Laravel and PHP versions does laravel-parallel support?
- The package targets modern Laravel applications, with Laravel 10 and 11 on PHP 8.x being the realistic support surface described in current evaluations. Always check the composer.json constraints in the package before adopting it, since the documentation is terse and the support matrix is not spelled out in detail. If your app is pinned to an older Laravel or PHP 7.x, verify compatibility first or expect friction.
- Does laravel-parallel work with Pest, or only PHPUnit?
- The package is built around parallelizing PHPUnit test execution, and Pest runs on top of PHPUnit, so Pest suites often work in practice. However, explicit Pest support is not clearly documented, so treat it as something to prove in a pilot rather than assume. Run your Pest suite in parallel and serial mode side by side and compare pass counts and wall-clock time before standardizing.
- How do I control how many parallel processes laravel-parallel uses?
- Concurrency is configurable, which is the main tuning knob for matching your CI runner's CPU and memory budget. Start with a conservative number and raise it while watching wall-clock time, flake rate, and memory pressure. Over-provisioning workers on a small CI runner usually produces slower, less stable runs rather than faster ones.
- How does laravel-parallel isolate databases between parallel test workers?
- Parallel workers each need their own database state, otherwise tests collide on shared tables and produce false failures. The package's specific per-worker strategy, whether it creates and drops databases, clones a template, or wraps tests in transactions, is not deeply documented, so review the source or config before relying on it. Measure the cost per run on your schema, since database setup can dominate the speedup on large suites.
- Why do some of my tests fail only when run in parallel?
- Parallelism amplifies existing non-determinism: tests that share fixtures, write to fixed file paths, bind hard-coded ports, assume a specific ordering, or depend on static caches will break when run in separate processes. Fix isolation before adopting the tool, not in parallel with it. A practical approach is to run the full suite twice serially to surface ordering dependencies, then re-run under parallel workers to identify the remaining offenders.
- Is laravel-parallel safe to use in production?
- No, and it is not designed to be. It is development-time tooling that sits in the Artisan command layer and fans tests out to worker processes; it does not change application code, container bindings, or runtime behavior. Keeping it in require-dev means the blast radius is contained and the package can be removed in a single commit.
- How does laravel-parallel compare to ParaTest?
- ParaTest is the more established, community-backed option for parallel PHPUnit execution and works in any PHP project. laravel-parallel adds Laravel-specific integration through Artisan commands and familiar PHPUnit output, which can make it a smoother fit for Laravel-only teams. For non-Laravel projects or teams that want maximum community gravity and documentation, ParaTest is the safer default choice.
- Can I run laravel-parallel in GitHub Actions or GitLab CI?
- Yes, it fits naturally into GitHub Actions, GitLab CI, or Jenkins as a CI-time accelerator layered on top of your existing test job. Adopt it incrementally: pilot it on the slowest suite, run parallel and serial jobs side by side for a defined window, and compare wall-clock time, flake rate, and coverage parity. Keep the original phpunit or paratest command documented in your CI config as a fallback so a bad release cannot block your pipeline.
- Is laravel-parallel actively maintained, and what happens if it is abandoned?
- It is a small, single-maintainer package with modest adoption and a last release in May 2024, so treat it as useful but unproven at scale rather than a stable platform component. Pin the version, keep the dependency dev-only, and record the removal path in your CI docs. The realistic risk is build-time flakiness and upstream drift, not a production outage, and reverting to plain PHPUnit or ParaTest is a one-commit change.