Is there a way to have Behat NOT fail on PHP Notice errors?

江枫思渺然 提交于 2019-12-18 13:35:48

问题


I understand that it is a best practice to have all variables defined and to check for array indexes before evaluating. However, I'm trying to run some tests on new functionalities developed on top of some legacy code which has not been coded this way.

Behat fails with this message:

  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 [...]

I will fix these notices eventually, but I need Behat to ignore notices from PHP for now. Is there a way to do that?

Thanks!


回答1:


EDIT: This will work for v2.x of Behat. For v > 3.x see Alexander Haas answer below.

Finally found it! By digging in the code, I found that Behat has a way to change the error reporting level. Just do

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

in the FeatureContext.php file. It does the trick!

Afterwards, I googled the constant and found this in the changelog:

  • Added BEHAT_ERROR_REPORTING constant to change error_repoting level



回答2:


For Behat 3 see my question and answer: How to run Behat tests when there are errors of level E_USER_DEPRECATED

BEHAT_ERROR_REPORTING is dropped in favor of a configuration value.



来源:https://stackoverflow.com/questions/9184695/is-there-a-way-to-have-behat-not-fail-on-php-notice-errors

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!