Closed
Description
Code below works fine for Behat 2 but it doesn't for Behat 3. Does anyone know how to implement it in Behat 3?
_Behat 3 error:_
PHP Fatal error: Call to undefined method Behat\Behat\Hook\Scope\AfterStepScope::getResult() in behat-three/features/bootstrap/Site/MainBundle/Features/Context/FeatureContext.php on line 65
Line 65 is : if (4 === $event->getResult()) {
_Behat 2 working example_
namespace Site\CommonBundle\Features\Context;
use Behat\MinkExtension\Context\MinkContext;
use Behat\Mink\Exception\UnsupportedDriverActionException;
use Behat\Mink\Driver\Selenium2Driver;
use Behat\Symfony2Extension\Context\KernelAwareInterface;
use Symfony\Component\HttpKernel\KernelInterface;
use Symfony\Component\Process\Process;
class FeatureContext extends MinkContext implements KernelAwareInterface
{
/**
* Take screen-shot when step fails. Works only with Selenium2Driver.
*
* @AfterStep
* @param $event Current event.
* @throws \Behat\Mink\Exception\UnsupportedDriverActionException
*/
public function takeScreenshotAfterFailedStep($event)
{
if (4 === $event->getResult()) {
$driver = $this->getSession()->getDriver();
if (! ($driver instanceof Selenium2Driver)) {
throw new UnsupportedDriverActionException(
'Taking screen-shots is not supported by %s, use Selenium2Driver instead.',
$driver
);
return;
}
if (! is_dir($this->screenShotPath)) {
mkdir($this->screenShotPath, 0777, true);
}
$filename = sprintf(
'%s_%s_%s.%s',
$this->getMinkParameter('browser_name'),
date('Ymd') . '-' . date('His'),
uniqid('', true),
'png'
);
file_put_contents($this->screenShotPath . '/' . $filename, $driver->getScreenshot());
}
}
}
Metadata
Metadata
Assignees
Labels
No labels