Подтвердить что ты не робот

Почему phpunit не показывает ошибок в консоли

Я использую phpunit с картой Laravel 4. Почему это происходит, когда при тестировании возникает ошибка PHP, не отображаются сообщения об ошибках (например: отсутствующий метод)?

Как мы можем заставить phpunit показать все ошибки?

enter image description here

4b9b3361

Ответ 1

Я думаю, что проблема, вероятно, относится к самому PHP, а не к PHPUnit. Выполните следующие действия:

1. Проверьте правильность php.ini. Обратите внимание, что некоторые системы могут использовать разные php.ini для разных PHP SAPI:

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

2. Отредактируйте настройки вывода ошибок. Установите соответствующие настройки для error_reporting, display_errors, display_startup_errors в соответствующем php.ini:

error_reporting = E_ALL
display_errors = On
display_startup_errors = On

Если вы не хотите изменять поведение сообщений об ошибках CLI в глобальной области видимости, вы можете использовать файл начальной загрузки PHPUnit для определения этих настроек.

1. Настройка начальной загрузки для PHPUnit. Откройте файл /Applications/MAMP/htdocs/testtingDecoded/phpunit.xml и добавьте атрибут bootstrap в тег phpunit:

<phpunit bootstrap="bootstrap.php">

2. Создайте bootstrap.php в папке с помощью 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');

Ответ 2

Это очень распространенная проблема, особенно когда вы выполняете тесты на производственном сервере или когда тестер не очень хорошо разбирается в настройке PHP.

Проблема связана с настройками php.ini, указанными Александром Янчаруком в его ответе, и все предлагаемые им решения работают нормально.

Но есть другое решение, которое может быть полезным, как и для меня, - установить соответствующие параметры PHP в самом файле конфигурации PHPUnit (XML) следующим образом:

<phpunit>
    <suites>
        ...
    </suites>
    <php>
        <ini name="display_errors" value="On" />
        <ini name="display_startup_errors" value="On" />
    </php>
</phpunit>

Используя это, вы можете персонализировать не только отображение ошибок, но и множество настроек PHP, в частности, для вашего тестового набора, оставляя конфигурацию вашего производства нетронутой и без необходимости писать файл начальной загрузки только для этого.