How to output in CLI during execution of PHP Unit tests?


Just realized another way to do this that works much better than the --verbose command line option:

class TestSomething extends PHPUnit_Framework_TestCase {
    function testSomething() {
        $myDebugVar = array(1, 2, 3);
        fwrite(STDERR, print_r($myDebugVar, TRUE));

This lets you dump anything to your console at any time without all the unwanted output that comes along with the --verbose CLI option.

As other answers have noted, it’s best to test output using the built-in methods like:


However, sometimes it’s helpful to be naughty and see one-off/temporary debugging output from within your test cases. There is no need for the var_dump hack/workaround, though. This can easily be accomplished by setting the --verbose command line option when running your test suite. For example:

$ phpunit --verbose -c phpunit.xml

This will display output from inside your test methods when running in the CLI environment.

See: Writing Tests for PHPUnit – Testing Output.

Leave a Comment