PHPUnit, кажется, генерирует исключения на Monolog, регистрируемые ошибки. Это можно обойти?
Я пробовал несколько методов, таких как использование функции set_error_handler в PHP — но это не сработало по понятным причинам (ошибка не выдается …)
WebControllerTest::testPostChangePasswordWithWrongCurrentPassword
PHPUnit_Framework_Exception: [2015-03-05 15:30:34] ERROR: Invalid credentials {"timeWhole":1425598234,"timeDecimal":0.0015931129455566,"type":"message:ERROR","code":49} []
/home/xxxxx/workspace/phpunit/vendor/phpunit/phpunit/src/TextUI/Command.php:152
/home/xxxxx/workspace/phpunit/vendor/phpunit/phpunit/src/TextUI/Command.php:104
Обратите внимание, что, хотя я действительно регистрирую ошибку, я ловлю ее в своем приложении.
Также обратите внимание, что setExpectedException в PHPUnit не работает с PHPUnit_Framework_Exception и не имеет точечной нотации:
/**
* @expectedException PHPUnit_Framework_Exception
*/
PHPUnit также генерирует исключения в сообщениях аудита.
Хорошо, наконец, понял это!
Это было потому, что я отправлял обработчик регистрации в Monolog для регистрации ошибок в stderr:
$this->logger->pushHandler(new StreamHandler('php://stderr', Monolog::ERROR));
Других решений пока нет …