Is there a way to have Behat NOT fail on PHP Notic

2019-02-07 09:19发布

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!

标签: php notice behat
2条回答
疯言疯语
2楼-- · 2019-02-07 09:41

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
查看更多
唯我独甜
3楼-- · 2019-02-07 09:48

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.

查看更多
登录 后发表回答