Question

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!

Was it helpful?

Solution

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

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top