fix: strip --processes from --list-tests when sharding in parallel - #1741
Open
lazerg wants to merge 1 commit into
Open
fix: strip --processes from --list-tests when sharding in parallel#1741lazerg wants to merge 1 commit into
--processes from --list-tests when sharding in parallel#1741lazerg wants to merge 1 commit into
Conversation
--processes from --list-tests when sharding in parallel
Author
|
@nunomaduro this fixes a real crash when --shard and --parallel are combined, would you mind taking a look when you get a chance? |
devajmeireles
added a commit
to tallstackui/tallstackui
that referenced
this pull request
Jul 29, 2026
…orker Two separate problems kept the sharded pipeline red even though every test passed. The shard builds its own --filter internally to select the files for its slice, so passing --filter Browser alongside it gave PHPUnit two of them. It warns "Option --filter cannot be used more than once" and exits 1 while still running everything. Switching to --testsuite, which phpunit.xml already defines for both suites, avoids the collision: same tests, exit 0. This is the same family as pestphp/pest#1731 and #1454, where the shard's internal --list-tests sub-invocation also flips the exit code, but the fix in pestphp/pest#1741 only strips --processes and would not cover this. Separately, Alert\FeatureTest failed intermittently with "filemtime(): stat failed" on a compiled view. Parallel workers share one compiled-view directory, so a worker can delete a view while another stats it. Paratest gives each worker a TEST_TOKEN, so each now compiles into its own directory. Four consecutive parallel runs went green afterwards. The previous run showed the sharding itself already works: 136+139+127+169 adds up to the full 571 tests, with wall time down from about 14 minutes to roughly 5m30 (the slowest slice).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What:
Description:
When
--shardis used with--paralleland there's no usabletests/.pest/shards.json, Pest builds the shard's--filterby spawning an internal--list-testsrun.Shard::removeParallelArguments()only stripped--parallel/-pfrom that sub-process, so it still received--processes, which--list-testsrejects —mustRun()then threwProcessFailedExceptionand the whole run exited non-zero even though every test passed. This strips--processesfrom that sub-invocation too, alongside the existing--parallelremoval.Related:
Closes #1731 (same root cause as #1454).