Intereting Posts
Как обновить кеш страницы, если сценарии были обновлены? следовать переадресации с curl в php Expose «использовать» классы для включенного файла Как определить последний идентификатор вставки в транзакции в Yii с помощью DAO? php, file загрузить mysql_fetch_assoc () ожидает, что параметр 1 будет ресурсом, boolean задан в C: \ xampp \ htdocs \ qcc \ truckdelivery.php в строке 9 не выбрана база данных Анонимные функции в ловушках WordPress Как проверить, была ли получена почта с помощью php Как отобразить список родительских категорий (со ссылками) в WordPress как перенаправить в подпапку из корня, переписать ссылку подпапки, чтобы выглядеть как root, а затем добавить некоторые исключения в htaccess? Проверьте, когда была обновлена ​​база данных / таблицы SQLite (PHP) Каков правильный способ проверить, возвратили ли mysql_query () какие-либо результаты? mysqli_stmt, массивы и оператор IN Удалить базовый URL из ссылки в строке Понимание приращения

Как запустить тесты Behat, когда есть ошибки уровня E_USER_DEPRECATED

У меня есть тип формы Symfony 2.7, который вызывает некоторые ошибки уровня E_USER_DEPRECATED . Эти ошибки исходят не из моего собственного кода, а из vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/Form/Type/DoctrineType.php .

В режиме dev с помощью веб-браузера я могу получить доступ к странице, используя указанную форму. WDT показывает мне некоторые DEPRECATED сообщения, но форма работает, страница возвращается со статусом 200.

Используя Behat 3 (с Behat\Symfony2Extension\Driver\KernelDriver и Behat\Mink\Driver\BrowserKitDriver ), запрос на тот же URL-адрес возвращает ошибку сервера 500 состояния. Трассировка стека в ответе показывает, что ошибки DEPRECATED вызывают исключение.

Моя конфигурация Behat такая же простая, как описано в http://docs.behat.org/en/v3.0/cookbooks/1.symfony2_integration.html

Когда я define('BEHAT_ERROR_REPORTING', 0); поверх моего файла FeatureContext.php как указано в https://stackoverflow.com/a/9217606/2342504, изменений в поведении нет.

После некоторого сканирования кода я предполагаю, что константа BEHAT_ERROR_REPORTING удаляется в Behat 3, а вместо этого используется RuntimeCallHandler::errorReportingLevel .

Однако я не знаю, как настроить или установить RuntimeCallHandler::errorReportingLevel .

Related of "Как запустить тесты Behat, когда есть ошибки уровня E_USER_DEPRECATED"

Так что я понял. Этот файл дал мне необходимый совет: https://github.com/Behat/Behat/blob/master/features/error_reporting.feature#L100-L101

Чтобы получить требуемое целое число, я использовал php -r "echo E_ALL & ~E_USER_DEPRECATED;" что дало 16383 . Поэтому я ввел это в свое behat.yml :

  calls: error_reporting: 16383 

После этого Беат, наконец, не сломался, но это показало уродливые исключения-следы. Поэтому я вернул вызов error_reporting в FeatureContext.php , прямо перед определением класса:

 error_reporting(error_reporting() & ~E_USER_DEPRECATED); 

Теперь Behat игнорирует все ошибки уровня E_USER_DEPRECATED и я предполагаю, что я сохраню это до тех пор, пока не начну использовать Symfony 3.