DEV Community

Cover image for How to show var_dumps in phpunit or codeception
Julian
Julian

Posted on

How to show var_dumps in phpunit or codeception

if you use phpunit or codeception (which uses phpunit under the hood), you sometimes want to see the output of the vardump()'s of the class you are testing. per default the output of vardump is supressed.

MyClassToTest.php

...
public function doSomething()
{
    ...
    var_dump('my var dump');
    ...
}

...

Test.php

public function test()
{
    $myClassToTest = Stub::make('\App\MyClassToTest', ['name' => 'myname']);

    $this->assertEquals('name', $myClassToTest->doSomething());
}
codecept run unit -vvv

does not show the var_dump calls

if you add a ob_flush(); after your var_dump call, the output is shown

...
public function doSomething()
{
    ...
    var_dump('my var dump');
    ob_flush();
    ...
}

...

alternatively you can use the symfony var dumper component which output is shown without a ob_flush();

...
public function doSomething()
{
    ...
    dump('my var dump');
    ...
}

...

you don't need the -vvv parameter, the output is still shown.

codecept run unit

links:

Top comments (1)

Collapse
 
ohffs profile image
ohffs

If you don't mind being a bit 'hacky' you can also do :

fwrite(STDERR, 'whatever you want to see');

Which is handy for a quick 'fix' ;-)