andreas-weber/php-junit-merge
A PHP tool for merging multiple JUnit XML test reports into one file, simplifying consolidation of results from parallel test runs and CI jobs. Useful for build pipelines that need a single combined JUnit report.
Architecture fit
require-dev.php artisan test --parallel, matrix jobs in GitHub Actions/GitLab CI) and downstream consumers — GitLab merge request test reports, Jenkins JUnit plugin, SonarQube, Allure, TestRail importers — require a single report file.Integration feasibility
composer require --dev plus one pipeline step. There is no runtime coupling, no database, no queue, no config surface, and no bootstrapping cost. A working pilot is an afternoon, not a sprint.Technical risk
<testsuite> trees, dropping <system-out>/<system-err>, mis-summing time, or collapsing duplicate test names that legitimately appear in multiple shards. All of these are detectable with a small golden-file test suite.DOMDocument code. The build-vs-buy line is genuinely close here.Key questions
<testsuite> structure produced by our specific runner (PHPUnit vs. Pest, ParaTest vs. CI matrix shards)?<system-out> for debugging, or does it flatten them?cat of XML fragments would satisfy?Stack fit
composer.json scripts block (test, test:parallel) and with whatever artifact-upload step the CI already has.Migration path
build/junit-merged.xml, and point the reporting integration at the merged file.Compatibility
^1.0 today is fine, but an unlocked dev dependency on an abandoned library is a future surprise.Sequencing
Maintenance
composer.json, and add a golden-file test that runs on the merge step. This converts an abandoned dependency into an owned, small, tested internal tool — which is where this package's real value sits.Support
Scaling
Failure modes
Ramp-up
Recommendation
How can I help you explore Laravel packages today?