Я использую phpunit с картой Laravel 4. Почему это происходит, когда при тестировании возникает ошибка PHP, не отображаются сообщения об ошибках (например: отсутствующий метод)?
Как мы можем заставить phpunit показать все ошибки?
Я использую phpunit с картой Laravel 4. Почему это происходит, когда при тестировании возникает ошибка PHP, не отображаются сообщения об ошибках (например: отсутствующий метод)?
Как мы можем заставить phpunit показать все ошибки?
Я думаю, что проблема, вероятно, относится к самому 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');
Это очень распространенная проблема, особенно когда вы выполняете тесты на производственном сервере или когда тестер не очень хорошо разбирается в настройке 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, в частности, для вашего тестового набора, оставляя конфигурацию вашего производства нетронутой и без необходимости писать файл начальной загрузки только для этого.