Paraunit is a tool for faster execution of PHPUnit test suites. It makes this possible by launching multiple tests in parallel with single PHPUnit processes.
Paraunit is developed using Symfony components.
To use this package, use Composer:
- from CLI:
composer require --dev facile-it/paraunit - or, directly in your
composer.json:
{
"require-dev": {
"facile-it/paraunit": "^2.0"
}
}You can use Paraunit with many versions of PHPUnit or Symfony, following this compatibility list:
| Paraunit version | Compatible PHPUnit Version | Compatible Symfony Version |
|---|---|---|
| 2.8 | 10.5.4+, 11+, 12+, 13.0 | 4.4, 5, 6, 7, 8 |
| 2.7.1 | 10.5.4+, 11+, 12+ | 4.4, 5, 6, 7, 8 |
| 2.5 | 10.5.4+, 11+, 12+ | 4.4, 5, 6, 7 |
| 2.3 | 10.5.4+, 11+ | 4.4, 5, 6, 7 |
| 2.0 | 10+ | 4.4, 5, 6, 7 |
| 1.3 | 9.3+ | 4.4, 5, 6 |
| 1.2 | 9.3+ | 3.4, 4, 5 |
| 1.1 | 9.1, 9.2 | 3.4, 4, 5 |
| 1.0.* | 7, 8 | 3.4, 4, 5 |
| 0.12.* | 6, 7 | 2.8, 3, 4 |
Paraunit starts as a Symfony console command, but it's provided through a bin launcher; you can run it like this:
(assuming your Composer's bin dir is vendor/bin)
vendor/bin/paraunit run
This command will launch all the tests in all your configured test suites.
Paraunit is also able to collect the test coverage in parallel, like this:
vendor/bin/paraunit coverage --html=./dir
It automatically uses the best coverage driver available: it tries to use Pcov if available (since it's the fastest), otherwise it uses Xdebug. If neither is available, it should always be able to use PHPDbg, which is bundled in the PHP core, so it should always be present. It can produce coverage in the same formats that PHPUnit provides: HTML, Clover, Cobertura, XML, Crap4j, PHP, text file and text to console.
For more details about Paraunit and its usage, see the documentation