richardmiller-zz / ErrorExtension

Behat extension to handle fatal errors in a slightly nicer way. [READ-ONLY] Subtree split from https://github.com/richardmiller/BehatSpec
MIT License
7 stars 2 forks source link

ErrorExtension

Scrutinizer Code Quality Build Status

Behat extension to provide formatted error messages for fatal errors.

This stops the large stack traces appearing on every fatal error. Instead a simpler formatted error showing the error message, file and line number is shown. If you need the full stack trace then they will still appear when Behat is run with the verbose flag.

Since this does work in the shutdown function there is a good chance things will go horribly wrong if there are any errors/exceptions in handing the errors. It's an extension to a dev tool though so this is not that worth worrying about.

Installation

This extension requires:

The easiest way to install it is to use Composer

$ composer require --dev rmiller/error-extension:^0.5

Activate the extension by specifying its class in your behat.yml:

# behat.yml
default:
  # ...
  extensions:
    RMiller\BehatSpec\Extension\ErrorExtension\ErrorExtension: ~

Error Observers

Observers can be registered for the errors to handle them in some way from another Behat extension. These must implement the following interface:

namespace RMiller\BehatSpec\Extension\ErrorExtension\Observer;

interface ErrorObserver
{
    public function notify(array $error);
}

and be tagged with rmiller.error_listener in the service configuration.

Currently this is used by the PhpSpecExtension to trigger running PhpSpec commands on relevant errors.