Есть ли способ, чтобы Behat НЕ выходил из строя на ошибках уведомления PHP?

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

Behat не удается с этим сообщением:

Scenario: Add a new resource # features/accounting.feature:6 Given I am user "admin" # FeatureContext::iAmUser() Notice: Undefined index: 13 in classloader.php line 126 When I create a new resource # FeatureContext::iCreateANewResource() Then [...] 

В конце концов я исправлю эти уведомления, но мне нужно, чтобы Behat игнорировал уведомления из PHP. Есть ли способ сделать это?

Благодаря!

  • как поместить переменную javascript в php echo
  • Как предотвратить XSS с HTML / PHP?
  • Создайте вложенный список из массива PHP для поля выпадающего списка
  • PDO IN () Задание массива и местозаполнитель
  • PHP exec () не работает должным образом
  • Пропустить первую строку файла CSV
  • 2 Solutions collect form web for “Есть ли способ, чтобы Behat НЕ выходил из строя на ошибках уведомления PHP?”

    EDIT: Это будет работать для v2.x Behat. Для v> 3.x см. Ответ Александра Хааса ниже.

    Наконец нашел это! Копаясь в коде, я обнаружил, что у Behat есть способ изменить уровень отчетности об ошибках. Просто делать

     define('BEHAT_ERROR_REPORTING', E_ERROR | E_WARNING | E_PARSE); 

    в файле FeatureContext.php . Это трюк!

    Впоследствии, я googled константа и нашел это в журнале изменений :

    • Добавлена ​​константа BEHAT_ERROR_REPORTING для изменения уровня ошибки_репоты

    Для Behat 3 см. Мой вопрос и ответ: Как запустить тесты Behat, когда есть ошибки уровня E_USER_DEPRECATED

    BEHAT_ERROR_REPORTING отбрасывается в пользу значения конфигурации.

    PHP is the Best Programming Language in the world.