/behat-failurehook-extension

Hook scenario failures and do what you like

Primary LanguagePHPApache License 2.0Apache-2.0

behat-failurehook-extension

This behat extension will trigger actions when your test failed that you can use e.g. to take a screenshot, save the html content, or something more specific as it allows you to add your own thing.

How your behat.yml should look like:

default:
    extensions:
        Fonsecas72\FailureExpoExtension:
            expounds:
                - Features\FailureHooks\MySQLDumpExpound

You should not need anything else to make it work.

Adding your own hooks:

E.g. of a hook:

<?php

namespace Features\FailureHooks;

class MySQLDumpExpound extends \Fonsecas72\FailureExpoExtension\Expounds\Expound
{
    public function expose()
    {
        $fs = new \Symfony\Component\Filesystem\Filesystem();
        $destination = 'build/'.$this->description;
        $fs->mkdir($destination);
        shell_exec('mysqldump -uuser -ppass db > '.$destination.'/dbdump.sql');
        echo PHP_EOL.'| MysqlDump captured ~> '.$destination.'/dbdump.sql';
    }
}

How it works

Your failure-hook should extend \Fonsecas72\FailureExpoExtension\Expounds\Expound and implement expose method. This method will be called when a failure occurs. Failure-hook extension will then expose a special "description" property that identifies the failing scenairo.