{"id":15014473,"url":"https://github.com/gerardroche/sublime-phpunit","last_synced_at":"2025-04-07T07:11:52.156Z","repository":{"id":25505535,"uuid":"28936975","full_name":"gerardroche/sublime-phpunit","owner":"gerardroche","description":"PHPUnit Sublime Text integration.","archived":false,"fork":false,"pushed_at":"2025-01-07T20:09:57.000Z","size":2445,"stargazers_count":74,"open_issues_count":2,"forks_count":12,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-31T06:02:56.719Z","etag":null,"topics":["php","phpunit","sublime-text"],"latest_commit_sha":null,"homepage":"https://www.gerardroche.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gerardroche.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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}},"created_at":"2015-01-07T22:19:33.000Z","updated_at":"2025-01-07T20:10:01.000Z","dependencies_parsed_at":"2023-01-14T02:51:26.537Z","dependency_job_id":"bb53f4b8-4a11-498c-863b-57fbef8b9532","html_url":"https://github.com/gerardroche/sublime-phpunit","commit_stats":{"total_commits":694,"total_committers":8,"mean_commits":86.75,"dds":"0.015850144092218965","last_synced_commit":"c835173fe15841900ccb2104156db225c9efaf93"},"previous_names":[],"tags_count":84,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerardroche%2Fsublime-phpunit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerardroche%2Fsublime-phpunit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerardroche%2Fsublime-phpunit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerardroche%2Fsublime-phpunit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gerardroche","download_url":"https://codeload.github.com/gerardroche/sublime-phpunit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247608153,"owners_count":20965952,"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","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":["php","phpunit","sublime-text"],"created_at":"2024-09-24T19:45:40.517Z","updated_at":"2025-04-07T07:11:52.135Z","avatar_url":"https://github.com/gerardroche.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003eWelcome to PHPUnit Kit\u003c/h1\u003e\n\n\u003cp\u003e\n    \u003ca href=\"https://github.com/gerardroche/sublime-phpunit/actions/workflows/ci.yml\"\u003e\u003cimg alt=\"GitHub CI Status\" src=\"https://github.com/gerardroche/sublime-phpunit/actions/workflows/ci.yml/badge.svg?branch=master\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/gerardroche/sublime-phpunit\"\u003e\u003cimg alt=\"CodeCov Coverage Status\" src=\"https://codecov.io/gh/gerardroche/sublime-phpunit/branch/master/graph/badge.svg?token=rnB0MiBXlK\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://packagecontrol.io/packages/PHPUnitKit\"\u003e\u003cimg alt=\"Download Count\" src=\"https://img.shields.io/packagecontrol/dt/PHPUnitKit.svg\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nEnhance your coding experience with seamless PHPUnit integration for [Sublime Text](https://sublimetext.com).\n\n\u003cimg alt=\"PHPUnitKit in Action\" src=\"https://raw.githubusercontent.com/gerardroche/sublime-phpunit/master/screenshot.png\" width=\"585\"\u003e\n\n## Features\n\n* Run a test\n* Run a test file\n* Run the test suite\n* Run the nearest test\n* Run the last test\n* Run tests via SSH\n* Run tests via Docker\n* Run tests via sidebar and context menus\n* Run multiple tests (multiple cursor)\n* Auto-run tests on save\n* Jump to next and previous failures\n* File and test switcher\n* Toggle options\n* Fully customizable\n* Zero configuration required\n* Support for:\n    - [Artisan] - Artisan is the command-line interface included with Laravel.\n    - [Composer] - Composer is a Dependency Manager for PHP.\n    - [iTerm2] - iTerm2 brings the terminal into the modern age.\n    - [Kitty] - Kitty is a fast, feature-rich, cross-platform, GPU-based terminal.\n    - [ParaTest] - ParaTest adds parallel testing support in PHPUnit.\n    - [Pest] - Pest is a testing framework with a focus on simplicity.\n    - [xterm] - A terminal emulator for the X Window System.\n    - [cmd] - A command-line interpreter for Windows.\n    - [PowerShell] - A cross-platform command-line shell.\n    - [Tmux] - A terminal multiplexer.\n\nRead [Running PHPUnit Tests from Sublime Text](https://blog.gerardroche.com/2023/05/05/running-phpunit-tests-within-sublime-text/) for a quick introduction.\n\n\u003cdetails\u003e\n \u003csummary\u003e\u003cstrong\u003eTable of Contents\u003c/strong\u003e (click to expand)\u003c/summary\u003e\n\n- [Command Palette](#command-palette)\n- [Key Bindings](#key-bindings)\n- [Strategies](#strategies)\n- [Settings](#settings)\n- [NeoVintageous mappings](#neovintageous-mappings)\n- [Installation](#installation)\n- [Contributing](#contributing)\n- [Changelog](#changelog)\n- [Credits](#credits)\n- [License](#license)\n\n\u003c/details\u003e\n\n## Command Palette\n\n| Command                           | Description\n| :-------------------------------- | :----------\n| PHPUnit:\u0026nbsp;Test\u0026nbsp;Nearest   | Executes the test closest to the cursor. If the current file isn't a designated test file, it runs tests for the current file.\n| PHPUnit:\u0026nbsp;Test\u0026nbsp;File      | Runs tests for the currently open file. If it's not a test file, it runs tests for the current file.\n| PHPUnit:\u0026nbsp;Test\u0026nbsp;Suite     | Runs the test suite associated with the current file.\n| PHPUnit:\u0026nbsp;Test\u0026nbsp;Last      | Runs the most recently executed test.\n| PHPUnit:\u0026nbsp;Test\u0026nbsp;Switch    | In a test file, opens the file under test; otherwise, opens the corresponding test file.\n| PHPUnit:\u0026nbsp;Test\u0026nbsp;Visit     | Quickly accesses the last run test.\n| PHPUnit:\u0026nbsp;Test\u0026nbsp;Results   | Opens the test output panel (applies to \"sublime\" strategy).\n| PHPUnit:\u0026nbsp;Test\u0026nbsp;Cancel    | Halts any ongoing test executions.\n| PHPUnit:\u0026nbsp;Test\u0026nbsp;Coverage  | Views code coverage using your default browser.\n| PHPUnit:\u0026nbsp;Toggle...           | Various toggle commands.\n\n## Key Bindings\n\n| Key        | Description\n| :--------- | :----------\n| `F4`       | Jump to the next failure\n| `Shift+F4` | Jump to the previous failure\n\n### Create your preferred key bindings\n\n\u003e Command Palette → Preferences: Key Bindings\n\nLinux / Win\n\n```jsonl\n{ \"keys\": [\"ctrl+shift+a\"], \"command\": \"phpunit_test_suite\" },\n{ \"keys\": [\"ctrl+shift+c\"], \"command\": \"phpunit_test_cancel\" },\n{ \"keys\": [\"ctrl+shift+f\"], \"command\": \"phpunit_test_file\" },\n{ \"keys\": [\"ctrl+shift+l\"], \"command\": \"phpunit_test_last\" },\n{ \"keys\": [\"ctrl+shift+n\"], \"command\": \"phpunit_test_nearest\" },\n{ \"keys\": [\"ctrl+shift+r\"], \"command\": \"phpunit_test_results\" },\n{ \"keys\": [\"ctrl+shift+s\"], \"command\": \"phpunit_test_switch\" },\n{ \"keys\": [\"ctrl+shift+v\"], \"command\": \"phpunit_test_visit\" },\n```\n\nMac\n\n```jsonl\n{ \"keys\": [\"super+shift+a\"], \"command\": \"phpunit_test_suite\" },\n{ \"keys\": [\"super+shift+c\"], \"command\": \"phpunit_test_cancel\" },\n{ \"keys\": [\"super+shift+f\"], \"command\": \"phpunit_test_file\" },\n{ \"keys\": [\"super+shift+l\"], \"command\": \"phpunit_test_last\" },\n{ \"keys\": [\"super+shift+n\"], \"command\": \"phpunit_test_nearest\" },\n{ \"keys\": [\"super+shift+r\"], \"command\": \"phpunit_test_results\" },\n{ \"keys\": [\"super+shift+s\"], \"command\": \"phpunit_test_switch\" },\n{ \"keys\": [\"super+shift+v\"], \"command\": \"phpunit_test_visit\" },\n```\n\n## Strategies\n\nYou can run tests using different execution environments known as \"strategies\".\n\n| Strategy              | Identifier    | Description\n| :---------------------| :-------------| :----------\n| Sublime\u003cbr\u003e(default)  | `sublime`     | Sends test commands to Sublime Text's exec output panel.\n| iTerm2.app            | `iterm`       | Sends test commands to `iTerm2 \u003e= 2.9`.\n| [Kitty]               | `kitty`       | Sends test commands to the Kitty terminal.\n| [xterm]               | `xterm`       | Sends test commands to the xterm terminal.\n| [cmd]                 | `cmd`         | Sends test commands to the cmd.exe terminal.\n| [PowerShell]          | `powershell`  | Sends test commands to the PowerShell command shell.\n| [Tmux]                | `tmux`        | Sends test commands to the Tmux terminal multiplexer.\n\n**Example:** Use the Tmux strategy\n\n\u003e Command Palette → Preferences: PHPUnit Settings\n\n```jsonl\n\"phpunit.strategy\": \"tmux\"\n```\n\n## Settings\n\n\u003e Command Palette → Preferences: PHPUnit Settings\n\n| Setting                   | Type               | Default              | Description\n| :------------------------ | :----------------- | :------------------- | :----------\n| `phpunit.executable`      | `string` or `list` | Auto-discovery       | Path to the PHPUnit executable for running tests. Environment variables and user home directory ~ placeholder are expanded. The executable can be a string or a list of parameters. Example: `vendor/bin/phpunit`\n| `phpunit.options`         | `dict`             | `{}`                 | Command-line options to pass to PHPUnit. Example: `{\"no-coverage\": true}`\n| `phpunit.php_executable`  | `string`           | Auto-discovery       | Path to the PHP executable for running tests. Environment variables and user home directory ~ placeholder are expanded. Example: `~/.phpenv/versions/8.2/bin/php`\n| `phpunit.save_all_on_run` | `boolean`          | `true`               | Automatically saves all unsaved buffers before running tests.\n| `phpunit.on_post_save`    | `list`             | `[]`                 | Auto commands to execute when views are saved. Example: `[\"phpunit_test_file\"]`\n| `phpunit.debug`           | `boolean`          | `false`              | Prints debug information about the test runner.\n| `phpunit.prepend_cmd`     | `list`             | `[]`                 | Prepends custom commands to the test runner.\n| `phpunit.strategy`        | `string`           | `sublime`            | The execution environment used for running tests.\n| `phpunit.font_size`       | `integer`          | Editor default       | Font size of PHPUnit's output.\n| `phpunit.composer`        | `boolean`          | `true`               | Uses Composer-installed executables.\n| `phpunit.artisan`         | `boolean`          | `false`              | Uses Artisan to run tests.\n| `phpunit.paratest`        | `boolean`          | `false`              | Uses ParaTest to run tests.\n| `phpunit.pest`            | `boolean`          | `false`              | Uses Pest to run tests.\n\n**SSH Settings**\n\nConfigure SSH settings for running tests remotely:\n\n| Setting               | Type          | Default   | Description\n| :-------------------- | :------------ | :-------- | :----------\n| `phpunit.ssh`         | `boolean`     | `false`   | Enable SSH for remote testing.\n| `phpunit.ssh_options` | `dict`        | `{}`      | Options for running tests via SSH. Example: `{\"-p\": \"22\", \"-tt\": true}`.\n| `phpunit.ssh_user`    | `string`      | `null`    | User for running tests via SSH. Example: `vagrant`\n| `phpunit.ssh_host`    | `string`      | `null`    | Host for running tests via SSH. Example: `homestead.test`\n| `phpunit.ssh_paths`   | `dict`        | `{}`      | Path mapping for running tests via SSH. Keys: local paths, Values: corresponding remote paths. Environment variables and user home directory ~ placeholder are expanded. Example: `{\"~/code/project1\": \"~/project1\"}`\n\n**Docker Settings**\n\nConfigure Docker settings for running tests within containers:\n\n| Setting               | Type          | Default   | Description\n| :-------------------- | :------------ | :-------- | :----------\n| `phpunit.docker`         | `boolean`  | `false`   | Enable Docker for testing.\n| `phpunit.docker_command` | `list`     | `[]`      | Command to use when running tests via Docker. Example: `[\"docker\", \"exec\", \"-it\", \"my-container\"]`\n| `phpunit.docker_paths`   | `dict`     | `{}`      | Path mapping for running tests via Docker. Keys: local paths, Values: corresponding remote paths. Environment variables and user home directory ~ placeholder are expanded. Example: `{\"~/code/project1\": \"~/project1\"}`\n\n**Tmux Settings** :new:\n\nConfigure Tmux settings for running tests in a tmux pane:\n\n| Setting                           | Type          | Default   | Description\n| :-------------------------------- | :------------ | :-------- | :----------\n| `phpunit.tmux_clear`              | `bool`        | `true`    | Clear the terminal screen before running tests.\n| `phpunit.tmux_clear_scrollback`   | `bool`        | `true`    | Clear the terminal's scrollback buffer or do not attempt to clear it using the extended \"E3\" capability.\n| `phpunit.tmux_target`             | `string`      | `:.`      | Specify the session, window, and pane which should be used to run tests. \u003cbr\u003e\u003cbr\u003eFormat: `{session}:{window}.{pane}` \u003cbr\u003e\u003cbr\u003eThe default means the current pane. \u003cbr\u003e\u003cbr\u003eFor example, `:{start}.{top}` would mean the current session, lowest-numbered window, top pane. \u003cbr\u003e\u003cbr\u003eSee [Tmux documentation](http://man.openbsd.org/OpenBSD-current/man1/tmux.1#COMMANDS) for target usage.\n\n### phpunit.options\n\n- Type: `dict`\n- Default: `{}`\n\nDefault command-line options to pass to PHPUnit. If you want some CLI options to stick around, you can configure them in your settings.\n\n```jsonl\n\"phpunit.options\": {\n    \"no-coverage\": true,\n    \"no-progress\": true,\n    \"colors=never\": true,\n    \"order-by=\": \"defects\",\n    \"coverage-html\": \"build/coverage\",\n    \"d\": [\"display_errors=1\", \"xdebug.scream=0\"],\n}\n```\n\nThe above options will be passed to PHPUnit as CLI options:\n\n```shell\n-d \"display_errors=1\" \\\n-d \"xdebug.scream=0\" \\\n--no-coverage \\\n--no-progress \\\n--colors=never \\\n--order-by=defects \\\n--coverage-html build/coverage\n```\n\n**Ignore code coverage reporting configured in the XML configuration file**\n\nThis can help keep your tests fast. You can toggle no-coverage from the command palette when you need it.\n\n```jsonl\n\"phpunit.options\": {\n    \"no-coverage\": true,\n}\n```\n\n**Stop after first error, failure, warning, or risky test**\n\n```jsonl\n\"phpunit.options\": {\n    \"stop-on-defect\": true\n}\n```\n\n**Disable progress and output**\n\nThis is useful if you are migrating from PHPUnit to Pest and want to hide superfluous output.\n\n```jsonl\n\"phpunit.options\": {\n    \"no-progress\": true,\n    \"no-output\": true,\n}\n```\n\n### phpunit.executable\n\n- Type: `string | list`\n- Default: Auto-discovery\n\nThe PHPUnit executable to use when running tests.\n\n```jsonl\n\"phpunit.executable\": \"vendor/bin/phpunit\",\n```\n\nEnvironment variables and user home directory `~` placeholders are expanded.\n\n```jsonl\n\"phpunit.executable\": \"~/path/to/phpunit\",\n```\n\nAs a list of arguments:\n\n```jsonl\n\"phpunit.executable\": [\"artisan\", \"test\"]\n```\n\n### phpunit.php_executable\n\n- Type: `string`\n- Default: Auto-discovery\n\nThe PHP executable to use when running tests.\n\nEnvironment variables and user home directory `~` placeholders are expanded.\n\n```jsonl\n\"phpunit.php_executable\": \"~/.phpenv/versions/8.2/bin/php\"\n```\n\n### phpunit.save_all_on_run\n\n- Type: `boolean`\n- Default: `true`\n\nAutomatically save all unsaved views before running tests.\n\n### phpunit.on_post_save\n\n- Type: `list`\n- Default: `[]`\n\nAuto commands to execute when views are saved.\n\n*Currently only supports running the test file command.*\n\n```jsonl\n\"phpunit.on_post_save\": [\n    \"phpunit_test_file\"\n]\n```\n\n### phpunit.debug\n\n- Type: `boolean`\n- Default: `false`\n\nEnable debug logging when running tests.\n\n### phpunit.prepend_cmd\n\n- Type: `list`\n- Default: `[]`\n\nPrepends custom commands to the test runner.\n\n### phpunit.strategy\n\n- Type: `string`\n- Default: `sublime`\n\nThe execution environment used for running tests.\n\n### phpunit.font_size\n\n- Type: `integer`\n- Default: Editor default\n\nFont size of PHPUnit's output.\n\n### phpunit.composer\n\n- Type: `boolean`\n- Default: `true`\n\nDiscover and use Composer executables.\n\n### phpunit.artisan\n\n- Type: `boolean`\n- Default: `false`\n\nDiscover and use Artisan to run tests.\n\n### phpunit.paratest\n\n- Type: `boolean`\n- Default: `false`\n\nDiscover and use ParaTest to run tests.\n\n### phpunit.pest\n\n- Type: `boolean`\n- Default: `false`\n\nDiscover and use Pest to run tests.\n\n### phpunit.ssh\n\n- Type: `boolean`\n- Default: `false`\n\nEnable SSH for remote testing.\n\nRun tests via SSH using [Laravel Homestead](https://laravel.com/docs/homestead?ref=blog.gerardroche.com)\n\n```jsonl\n\"phpunit.ssh\": true,\n\"phpunit.ssh_options\": {\n    \"-p\": \"22\",\n    \"-tt\": true\n},\n\"phpunit.ssh_user\": \"vagrant\",\n\"phpunit.ssh_host\": \"homestead.test\",\n\"phpunit.ssh_paths\": {\n    \"~/code/project1\": \"~/project1\",\n    \"/home/code/project2\": \"/home/vagrant/project2\",\n}\n```\n\n### phpunit.ssh_options\n\n- Type: `dict`\n- Default: `{}`\n\nOptions for running tests via SSH.\n\n```jsonl\n\"phpunit.ssh_options\": {\n    \"-p\": \"22\",\n    \"-tt\": true\n}\n```\n\n### phpunit.ssh_user\n\n- Type: `string`\n- Default: `null`\n\nUser for running tests via SSH.\n\n```jsonl\n\"phpunit.ssh_user\": \"vagrant\"\n```\n\n### phpunit.ssh_host\n\n- Type: `string`\n- Default: `null`\n\nHost for running tests via SSH.\n\n```jsonl\n\"phpunit.ssh_host\": \"homestead.test\"\n```\n\n### phpunit.ssh_paths\n\n- Type: `dict`\n- Default: `{}`\n\nPath mapping for SSH.\n\nEnvironment variables and user home directory `~` placeholders are expanded.\n\n```jsonl\n\"phpunit.ssh_paths\": {\n    \"~/code/project1\": \"~/project1\"\n}\n```\n\n### phpunit.docker\n\n- Type: `boolean`\n- Default: `false`\n\nEnable Docker for testing.\n\nRun tests via [Docker](https://www.docker.com?ref=blog.gerardroche.com)\n\n```jsonl\n\"phpunit.docker\": true,\n\"phpunit.docker_command\": [\"docker\", \"exec\", \"-it\", \"my-container\"],\n\"phpunit.docker_paths\": {\n    \"~/code/project1\": \"~/project1\",\n    \"/home/code/project2\": \"/home/vagrant/project2\",\n}\n```\n\n### phpunit.docker_command\n\n- Type: `list`\n- Default: `[]`\n\nCommand to use when running tests via Docker.\n\n```jsonl\n\"phpunit.docker_command\": [\n    \"docker\",\n    \"exec\",\n    \"-it\",\n    \"my-container\"\n]\n```\n\n### phpunit.docker_paths\n\n- Type: `dict`\n- Default: `{}`\n\nPath mapping for Docker.\n\nEnvironment variables and user home directory `~` placeholders are expanded.\n\n```jsonl\n\"phpunit.docker_paths\": {\n    \"~/code/project1\": \"~/project1\"\n}\n```\n\n### phpunit.tmux_clear\n\n- Type: `bool`\n- Default: `true`\n\nClear the terminal screen before running tests.\n\n### phpunit.tmux_clear_scrollback\n\n- Type: `bool`\n- Default: `true`\n\nClear the terminal's scrollback buffer or do not attempt to clear it using the extended \"E3\" capability.\n\n### phpunit.tmux_target\n\n- Type: `string`\n- Default: `:.` (current pane)\n\nSet the session, window, and pane, to be used to run tests. The format is `{session}:{window}.{pane}`, see [Tmux documentation](http://man.openbsd.org/OpenBSD-current/man1/tmux.1?ref=blog.gerardroche.com#COMMANDS) for details.\n\nCurrent session, lowest-numbered window, top pane.\n\n```\n:{start}.{top}\n```\n\nUse the `no-coverage` option by default, and then use the Command Palette Toggle no-coverage command, to toggle code coverage on and off when you need it. This can make your tests run faster by default.\n\n```jsonl\n\"phpunit.strategy\": \"tmux\",\n\"phpunit.tmux_target\": \":{start}.{top}\",\n\"phpunit.options\": {\n    \"colors\": true,\n    \"no-coverage\": true\n}\n```\n\n## Auto run\n\nYou can automatically run a test file on save.\n\nCommand Palette → Preferences: PHPUnit Settings\n\n```jsonl\n\"phpunit.on_post_save\": [\n    \"phpunit_test_file\"\n]\n```\n\n## NeoVintageous mappings\n\n[NeoVintageous](https://github.com/NeoVintageous/NeoVintageous) is a Vim emulator for Sublime Text.\n\n1. Open the Command Palette: `Command Palette → NeoVintageous: Open neovintageous file`.\n2. Add your preferred mappings.\n\n   **Example**\n\n   ```vim\n   nnoremap \u003cleader\u003et :TestNearest\u003cCR\u003e\n   nnoremap \u003cleader\u003eT :TestFile\u003cCR\u003e\n   nnoremap \u003cleader\u003ea :TestSuite\u003cCR\u003e\n   nnoremap \u003cleader\u003el :TestLast\u003cCR\u003e\n   nnoremap \u003cleader\u003eg :TestVisit\u003cCR\u003e\n   ```\n3. To apply the changes, reload the neovintageousrc from the Command Palette: `Command Palette → NeoVintageous: Reload neovintageous file`.\n\n## Installation\n\n**Method 1: Using Package Control**\n\n1. Open Sublime Text.\n2. Press `Ctrl+Shift+P` (Windows/Linux) or `Cmd+Shift+P` (macOS) to open the Command Palette.\n3. Type \"Package Control: Install Package\" and press `Enter`.\n4. In the input field, type \"PHPUnitKit\" and select it from the list of available packages.\n\n**Method 2: Manual Installation**\n\n1. Visit the [PHPUnitKit GitHub repository](https://github.com/gerardroche/sublime-phpunit).\n2. Click on the \"Code\" button and select \"Download ZIP.\"\n3. Extract the downloaded ZIP file.\n4. Open Sublime Text and go to `Preferences -\u003e Browse Packages...` to open the Packages folder.\n5. Copy the \"PHPUnitKit\" folder from the extracted ZIP and paste it into the Packages folder.\n\n**Method 3: Manual Git Repository Installation**\n\n1. Open a terminal or command prompt.\n2. Navigate to the Sublime Text Packages directory:\n    - On Windows: `%APPDATA%\\Sublime Text\\Packages`\n    - On macOS: `~/Library/Application Support/Sublime Text/Packages`\n    - On Linux: `~/.config/sublime-text/Packages`\n3. Clone the plugin repository directly into the Packages directory using Git:\n   ```\n   git clone https://github.com/gerardroche/sublime-phpunit.git PHPUnitKit\n   ```\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md).\n\n## Credits\n\nBased initially on, and inspired by the awesome work of [maltize/sublime-text-2-ruby-tests](https://github.com/maltize/sublime-text-2-ruby-tests), [stuartherbert/sublime-phpunit](https://github.com/stuartherbert/sublime-phpunit), [janko-m/vim-test](https://github.com/janko-m/vim-test), and many others.\n\n## License\n\nReleased under the [GPL-3.0-or-later License](LICENSE).\n\n[Artisan]: https://laravel.com/docs/artisan?ref=blog.gerardroche.com\n[Composer]: https://getcomposer.org?ref=blog.gerardroche.com\n[Kitty]: https://github.com/kovidgoyal/kitty?ref=blog.gerardroche.com\n[ParaTest]: https://github.com/paratestphp/paratest?ref=blog.gerardroche.com\n[Pest]: https://pestphp.com?ref=blog.gerardroche.com\n[PowerShell]: https://learn.microsoft.com/en-us/powershell/?ref=blog.gerardroche.com\n[Tmux]: https://github.com/tmux/tmux/wiki?ref=blog.gerardroche.com\n[cmd]: https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/cmd?ref=blog.gerardroche.com\n[iTerm2]: https://iterm2.com?ref=blog.gerardroche.com\n[xterm]: https://invisible-island.net/xterm/?ref=blog.gerardroche.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerardroche%2Fsublime-phpunit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgerardroche%2Fsublime-phpunit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerardroche%2Fsublime-phpunit/lists"}