Paraunit is a tool for faster executions of PHPUnit test suites. It makes this possible by launching multiple test 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.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 testsuites.
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 are available, it should always be able to use PHPDbg, which is bundled in PHP core, so it should be always 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