Search code examples
phptddphpunitlaravellaravel-4

Why does phpunit not show any errors in the console


I'm using phpunit with Laravel 4 framework. Why is it that when there's a PHP error during the tests, no error messages are shown (eg: missing method)?

How can we get phpunit to show all errors?

enter image description here


Solution

  • I think the problem is probably refers to a PHP itself, not PHPUnit. Follow this steps:

    1. Check proper php.ini. Note that some systems can use different php.ini for different PHP SAPI:

    php -i | grep php.ini
    Configuration File (php.ini) Path => /etc/php5/cli
    Loaded Configuration File => /etc/php5/cli/php.ini
    

    2. Edit error output settings. Set appropriate settings for error_reporting, display_errors, display_startup_errors in corresponding php.ini:

    error_reporting = E_ALL
    display_errors = On
    display_startup_errors = On
    

    If you don't want to change CLI error reporting behavior in global scope, you can use PHPUnit bootstrap file for define those settnigs.

    1. Setup bootstrap for PHPUnit. Open /Applications/MAMP/htdocs/testtingDecoded/phpunit.xml file and add bootstrap attribute to phpunit tag:

    <phpunit bootstrap="bootstrap.php">
    

    2. Create bootstrap.php in folder with phpunit.xml:

    <?php
    ini_set('error_reporting', E_ALL); // or error_reporting(E_ALL);
    ini_set('display_errors', '1');
    ini_set('display_startup_errors', '1');