Есть ли способ, чтобы Behat NOT терпел неудачу при ошибках PHP Notice? - PullRequest
4 голосов
/ 08 февраля 2012

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

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. Есть ли способ сделать это?

Спасибо!

Ответы [ 2 ]

15 голосов
/ 09 февраля 2012

РЕДАКТИРОВАТЬ: Это будет работать для v2.x Behat.Для v> 3.x см. Ответ Александра Хааса ниже.

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

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

в файле FeatureContext.php.Это делает свое дело!

После этого я погуглил константу и нашел ее в changelog :

  • Добавлена ​​константа BEHAT_ERROR_REPORTING для изменения уровня error_repoting
5 голосов
/ 25 июня 2015

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

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

...