PhpDev.App
facile-it/paraunit

facile-it/paraunit

Stars: 126

Forks: 14

Pull Requests: 116

Issues: 101

Watchers: 31

Last Updated: 2023-08-30 15:05:41

Run PHPUnit tests in parallel

License: Apache License 2.0

Languages: PHP, Shell, Dockerfile, Makefile

https://engineering.facile.it/paraunit/

facile-it/paraunit

PHP Version Stable release Unstable release composer.lock

Build status Coverage Status

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.

Installation

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"
    }
}

Compatibility

You can use Paraunit with many versions of PHPUnit or Symfony, following this compatibility list:

Paraunit version Compatible PHPUnit Version Compatible Symfony Version
2.0 10+ 4.4, 5, 6
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

Usage

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.

Collect test coverage

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, XML, Crap4j, PHP, text file and text to console.

Documentation

For more details about Paraunit and its usage, see the documentation