Aller au contenu
← Retour aux projets

Phpunit Pretty Print

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

Nouvelle version disponible.