{"id":15450347,"url":"https://github.com/nimut/phpunit-merger","last_synced_at":"2025-08-26T12:09:54.814Z","repository":{"id":27601680,"uuid":"114540931","full_name":"Nimut/phpunit-merger","owner":"Nimut","description":"Merge multiple PHPUnit reports into one file","archived":false,"fork":false,"pushed_at":"2024-08-05T08:38:22.000Z","size":82,"stargazers_count":43,"open_issues_count":6,"forks_count":32,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-27T21:10:46.069Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nimut.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-17T14:02:27.000Z","updated_at":"2025-01-09T20:23:52.000Z","dependencies_parsed_at":"2024-06-18T14:04:39.846Z","dependency_job_id":"e1353119-4ec3-411c-a603-2a5399bf53be","html_url":"https://github.com/Nimut/phpunit-merger","commit_stats":{"total_commits":57,"total_committers":5,"mean_commits":11.4,"dds":0.08771929824561409,"last_synced_commit":"4009f192a489a621fea7432e59b0111cc2d72247"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/Nimut/phpunit-merger","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nimut%2Fphpunit-merger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nimut%2Fphpunit-merger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nimut%2Fphpunit-merger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nimut%2Fphpunit-merger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nimut","download_url":"https://codeload.github.com/Nimut/phpunit-merger/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nimut%2Fphpunit-merger/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272219338,"owners_count":24894403,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-26T02:00:07.904Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T21:04:43.919Z","updated_at":"2025-08-26T12:09:54.789Z","avatar_url":"https://github.com/Nimut.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Merge multiple PHPUnit reports into one file\n\n[![Latest Stable Version](https://img.shields.io/packagist/v/nimut/phpunit-merger.svg)](https://packagist.org/packages/nimut/phpunit-merger)\n[![StyleCI](https://styleci.io/repos/114540931/shield?branch=main)](https://styleci.io/repos/114540931)\n![GitHub Actions](https://github.com/Nimut/phpunit-merger/actions/workflows/test.yml/badge.svg?event=push)\n\nSometimes it is necessary to run multiple PHPUnit instances to execute all tests of a project. Unfortunately each run\nwrites its own coverage and log reports. There is no support in PHPUnit to merge the reports of multiple runs.\n\nThis project provides two commands to merge coverage files as well as log files. It was designed to provide merged\nreports to e.g. SonarQube Scanner for further processing. \n\n## Installation\n\nUse [Composer](https://getcomposer.org/) to install the testing framework.\n\n```bash\n$ composer require --dev nimut/phpunit-merger\n```\n\nComposer will add the package as a dev requirement to your composer.json and install the package with its dependencies.\n\n## Usage\n\n### Coverage\n\nThe coverage command merges files containing PHP_CodeCoverage objects into one file in Clover XML format.\n\n```bash\n$ vendor/bin/phpunit-merger coverage \u003cdirectory\u003e [--html=\u003cdirectory\u003e] [\u003cfile\u003e]\n```\n\n**Arguments**\n\n- `directory`: Directory containing one or multiple files with PHP_CodeCoverage objects\n- `file`: File where the merged result should be stored. Default: Standard output\n\n**Options**\n\n- `html`: Directory where the HTML report should be stored \n- `lowUpperBound`: (optional) The lowUpperBound value to be used for HTML format \n- `highLowerBound`: (optional) The highLowerBound value to be used for HTML format \n\n### Log\n\nThe log command merges files in JUnit XML format into one file in JUnit XML format.\n\n```bash\n$ vendor/bin/phpunit-merger log \u003cdirectory\u003e \u003cfile\u003e\n```\n\n**Arguments**\n\n- `directory`: Provides the directory containing one or multiple files in JUnit XML format \n- `file`: File where the merged result should be stored\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnimut%2Fphpunit-merger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnimut%2Fphpunit-merger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnimut%2Fphpunit-merger/lists"}