/phpunit-pretty-print

Better PHPUnit CLI output with Collision

Primary LanguagePHPMIT LicenseMIT

Better PHPUnit CLI output

PHPUnit

CI License PHPStan Enabled PHP PHPUnit PHPUnit


I really like how Pest PHP formats and outputs test results, but I still prefer to use PHPUnit. Luckily there's Collision. This package is designed to give you beautiful error reporting when interacting with your app through the command line.

Installation

composer require robiningelbrecht/phpunit-pretty-print --dev

Configuration

Navigate to your phpunit.xml.dist file and add following config to set default options (you can also set these options at run time):

<extensions>
    <bootstrap class="RobinIngelbrecht\PHPUnitPrettyPrint\PhpUnitExtension">
    </bootstrap>
</extensions>

Also make sure the color attribute is set to true:

<phpunit 
        colors="true">
</phpunit>

Options

All these options can be set at runtime as well, see usage.

Output profiling report

<extensions>
    <bootstrap class="RobinIngelbrecht\PHPUnitPrettyPrint\PhpUnitExtension">
        <parameter name="displayProfiling" value="true"/>
    </bootstrap>
</extensions>

Enable compact mode

<extensions>
    <bootstrap class="RobinIngelbrecht\PHPUnitPrettyPrint\PhpUnitExtension">
        <parameter name="useCompactMode" value="true"/>
    </bootstrap>
</extensions>

Feel good about yourself after running your testsuite by displaying a Chuck Noris quote

<extensions>
    <bootstrap class="RobinIngelbrecht\PHPUnitPrettyPrint\PhpUnitExtension">
        <parameter name="displayQuote" value="true"/>
    </bootstrap>
</extensions>

Disable pretty print.

This can be useful when you only want to prettify the output when forced via CLI (see usage).

<extensions>
    <bootstrap class="RobinIngelbrecht\PHPUnitPrettyPrint\PhpUnitExtension">
        <parameter name="enableByDefault" value="false"/>
    </bootstrap>
</extensions>

Usage

> vendor/bin/phpunit

Example default

Output profiling report

> vendor/bin/phpunit -d --profiling

Example profiling

Enable compact mode

> vendor/bin/phpunit -d --compact

Example compact

Display Chuck Norris quote

> vendor/bin/phpunit -d --display-quote

Example quote

Enable/disable pretty print

> vendor/bin/phpunit -d --enable-pretty-print
> vendor/bin/phpunit -d --disable-pretty-print

Combine multiple options

> vendor/bin/phpunit --configuration=tests/phpunit.test.xml -d --compact -d --display-quote

PHPUnit 9.x

This package does not support PHPUnit 9.x but Collision does out of the box. Run

composer require nunomaduro/collision:^6.0

Then add the Collision printerClass to your phpunit.xml in the phpunit section:

<phpunit
        printerClass="NunoMaduro\Collision\Adapters\Phpunit\Printer">

Acknowledgements