{"id":22477563,"url":"https://github.com/maplephp/unitary","last_synced_at":"2026-01-16T09:52:41.555Z","repository":{"id":242230187,"uuid":"770050342","full_name":"MaplePHP/Unitary","owner":"MaplePHP","description":"Unitary is a modern PHP testing framework for developers who value speed, precision, and full control. ","archived":false,"fork":false,"pushed_at":"2026-01-13T22:08:10.000Z","size":1645,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-13T23:59:56.864Z","etag":null,"topics":["ci-cd","code-quality","continuous-integration","php","php-testing","tdd","testing-library","testing-tools","unit-testing","unit-tests","user-friendly","validation"],"latest_commit_sha":null,"homepage":"https://maplephp.github.io/Unitary/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MaplePHP.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-03-10T19:27:08.000Z","updated_at":"2026-01-13T22:01:44.000Z","dependencies_parsed_at":"2024-12-06T14:11:36.605Z","dependency_job_id":null,"html_url":"https://github.com/MaplePHP/Unitary","commit_stats":null,"previous_names":["maplephp/unitary"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/MaplePHP/Unitary","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaplePHP%2FUnitary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaplePHP%2FUnitary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaplePHP%2FUnitary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaplePHP%2FUnitary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MaplePHP","download_url":"https://codeload.github.com/MaplePHP/Unitary/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaplePHP%2FUnitary/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["ci-cd","code-quality","continuous-integration","php","php-testing","tdd","testing-library","testing-tools","unit-testing","unit-tests","user-friendly","validation"],"created_at":"2024-12-06T14:11:32.757Z","updated_at":"2026-01-16T09:52:41.545Z","avatar_url":"https://github.com/MaplePHP.png","language":"PHP","readme":"# Unitary – Evidence-Driven PHP Testing Framework\n\nUnitary is a modern PHP testing framework for developers who value speed, precision, and full control. No configuration. No clutter. Just a clean, purpose-built core that can execute 100,000+ tests per second and scales smoothly from quick sanity checks to full integration suites.\n\nMocking, validation, and assertions are built in from the start, with no plugins, adapters, or bootstrapping required. The CLI is fast and intuitive, the workflow is consistent, and getting started takes seconds. Whether you are validating a single function or an entire system, Unitary lets you move quickly and test with confidence.\n\n![Prompt demo](http://wazabii.se/github-assets/unitary/unitary-cli-states.png)\n\n---\n\n## Documentation\n\nVisit the full documentation at:  \n👉 https://maplephp.github.io/Unitary/\n\n---\n\n## Familiar Syntax. Fast Feedback.\n\nUnitary is designed to feel natural for developers. With clear syntax, built-in validation, and zero setup required, writing tests becomes a smooth part of your daily flow and not a separate chore.\n\n```php\nuse MaplePHP\\Unitary\\TestCase;\n\ngroup(\"Your grouped test subject\", function (TestCase $case) {\n\n    $json = '{\"response\":{\"status\":200,\"message\":\"ok\"}}';\n\n    $case-\u003eexpect($json)\n         -\u003eisJson()\n         -\u003ehasJsonValueAt(\"response.status\", 200)\n         -\u003evalidate();\n});\n```\n\n---\n\n## Next-Gen PHP Testing Framework\n\nUnitary is a lightning-fast, developer-first testing framework for PHP, built from the ground up with zero third-party dependencies and a highly optimized core, not just a wrapper around legacy tools.\n\n\u003e 🚀 *Test 100,000+ cases in \\~1 second. No config. No bloat. Just results.*\n\n---\n\n## 🔧 Why Use Unitary?\n\n* **Works out of the box** – No setup, no config files.\n* **Not built on PHPUnit** – Unitary is a standalone framework.\n* **100% agnostic** – Every sub-library is purpose-built for speed and control.\n* **First-class CLI** – Intuitive test runner that works across platforms.\n* **Powerful validation** – Built-in expectation engine, assert support, and structured output.\n* **Mocking included** – No external mocking libraries needed.\n* **Super low memory usage** – Ideal for local runs and parallel CI jobs.\n\n---\n\n## ⚡ Lightning-fast Performance\n\nUnitary runs large test suites in a fraction of the time — even **100,000+** tests in just **1 second**.\n\n🚀 That’s up to 50× faster than the most widely used testing frameworks. \n\n---\n\n\n## Getting Started (Under 1 Minute)\n\nSet up your first test in three easy steps:\n\n### 1. Install\n\n```bash\ncomposer require --dev maplephp/unitary\n```\n\n_You can run unitary globally if preferred with `composer global require maplephp/unitary`._\n\n---\n\n### 2. Create a Test File\n\nCreate a file like `tests/unitary-request.php`. Unitary automatically scans all files prefixed with `unitary-` (excluding `vendor/`).\n\nPaste this test boilerplate to get started:\n\n```php\nuse MaplePHP\\Unitary\\{TestCase};\n\ngroup(\"HTTP Request\", function(TestCase $case) {\n\n    $request = new Request(\"GET\", \"https://example.com/?id=1\u0026slug=hello\");\n\n    $case-\u003eexpect($request-\u003egetUri()-\u003egetQuery())\n        -\u003ehasQueryParam(\"id\", 1)\n        -\u003ehasQueryParam(\"slug\", \"hello\")\n        -\u003evalidate();\n});\n```\n\n\u003e 💡 Tip: Run `php vendor/bin/unitary --template` to auto-generate this boilerplate code.\n\n---\n\n### 3. Run Tests\n\n```bash\nphp vendor/bin/unitary\n```\n\n#### Need help?\n\n```bash\nphp vendor/bin/unitary --help\n```\n\n#### The Output:\n![Prompt demo](http://wazabii.se/github-assets/unitary/unitary-cli-state-pass.png)\n*And that is it! Your tests have been successfully executed!*\n\nWith that, you are ready to create your own tests!\n\n---\n\n## 📅 Latest Release\n\n**v2.0.0**\nThis release marks Unitary’s transition from a testing utility to a full framework. With the core in place, expect rapid improvements in upcoming versions.\n\n---\n\n## 🧱 Built From the Ground Up\n\nUnitary stands on a solid foundation of years of groundwork. Before Unitary was possible, these independent components were developed:\n\n\n* [`maplephp/Emitron`](https://github.com/maplephp/emitron) – PSR-15 kernel and middleware engine \n* [`maplephp/http`](https://github.com/maplephp/http) – PSR-7 HTTP messaging and stream handling\n* [`maplephp/prompts`](https://github.com/maplephp/prompts) – Interactive prompt/command engine\n* [`maplephp/blunder`](https://github.com/maplephp/blunder) – A pretty error handling framework\n* [`maplephp/validate`](https://github.com/maplephp/validate) – Type-safe input validation\n* [`maplephp/dto`](https://github.com/maplephp/dto) – Strong data transport\n* [`maplephp/container`](https://github.com/maplephp/container) – PSR-11 Container, container and DI system\n* [`maplephp/cache`](https://github.com/maplephp/cache) – PSR-6 and PSR-16 caching library\n\nThis full control means everything works together, no patching, no adapters and no guesswork.\n\n---\n\n## Philosophy\n\n\u003e **Test everything. All the time. Without friction.**\n\nTDD becomes natural when your test suite runs in under a second, even with 100,000 cases. No more cherry-picking. No more skipping.\n\n---\n\n## Like The CLI Theme?\nThat’s DarkBark. Dark, quiet, confident, like a rainy-night synthwave playlist for your CLI.\n\n[Download it here](https://github.com/MaplePHP/DarkBark)\n\n\n---\n\n## 🤝 Contribute\n\nUnitary is still young — your bug reports, feedback, and suggestions are hugely appreciated.\n\nIf you like what you see, consider:\n\n* Reporting issues\n* Sharing feedback\n* Submitting PRs\n* Starring the repo ⭐\n\n---\n\n## 📬 Stay in Touch\n\nFollow the full suite of MaplePHP tools:\n\n* [https://github.com/MaplePHP](https://github.com/MaplePHP)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaplephp%2Funitary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaplephp%2Funitary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaplephp%2Funitary/lists"}