/** @AfterStep */ public function after(Behat\Behat\Event\StepEvent $event) { if ($event->getResult() == 4) { //Failure $dbName = getenv('MAGENTO_DB_NAME'); $dbUser = getenv('MAGENTO_DB_USER'); $sql = <<<EOD mysql -u {$dbUser} {$dbName} -e "select path,value from core_config_data where path like 'payment/CreditCard/%'" EOD; system($sql); $sql = <<<EOD mysql -u {$dbUser} {$dbName} -e "select path,value from core_config_data where path like 'payment/LEcheck/%'" EOD; system($sql); } }
/** * @param Behat\Behat\Event\StepEvent $firstEvent * @param Behat\Behat\Event\StepEvent $secondEvent * @param Behat\Behat\Event\StepEvent $thirdEvent * @param Behat\Behat\Definition\Annotation\Given $firstDefinition * @param Behat\Behat\Definition\Annotation\When $secondDefinition * @param Behat\Behat\Definition\Annotation\Then $thirdDefinition * @param Behat\Behat\Event\SuiteEvent $event */ function it_computes_which_steps_have_more_than_80_percent_of_similarity_after_the_suite_has_been_run($firstEvent, $secondEvent, $thirdEvent, $firstDefinition, $secondDefinition, $thirdDefinition, $event) { $firstEvent->getDefinition()->willReturn($firstDefinition); $firstEvent->getResult()->willReturn(\Behat\Behat\Event\StepEvent::SKIPPED); $firstDefinition->getRegex()->willReturn('aaaaaaaaaa'); $this->afterStep($firstEvent); $secondEvent->getDefinition()->willReturn($secondDefinition); $secondEvent->getResult()->willReturn(\Behat\Behat\Event\StepEvent::SKIPPED); $secondDefinition->getRegex()->willReturn('aaaaaaaabb'); $this->afterStep($secondEvent); $thirdEvent->getDefinition()->willReturn($thirdDefinition); $thirdEvent->getResult()->willReturn(\Behat\Behat\Event\StepEvent::SKIPPED); $thirdDefinition->getRegex()->willReturn('I am totally different from the other steps'); $this->afterStep($thirdEvent); $this->afterSuite($event); $this->getMergeableSteps()->shouldReturn(array(array('source' => 'aaaaaaaaaa', 'compare' => 'aaaaaaaabb'))); }
/** * Take screenshot when step fails. Works only with Selenium2Driver. * * Screenshot is saved at [Date]/[Feature]/[Scenario]/[Step].jpg and emailed. * * @AfterStep @javascript */ public function takeScreenshotAfterFailedStep(Behat\Behat\Event\StepEvent $event) { if ($event->getResult() === Behat\Behat\Event\StepEvent::FAILED) { $html = $this->getSession()->getDriver()->getHtml('html'); echo $html . PHP_EOL . PHP_EOL; $driver = $this->getSession()->getDriver(); if ($driver instanceof Behat\Mink\Driver\Selenium2Driver) { $step = $event->getStep(); $path = array('date' => date("Ymd-Hi"), 'feature' => $step->getParent()->getFeature()->getTitle(), 'scenario' => $step->getParent()->getTitle(), 'step' => $step->getType() . ' ' . $step->getText()); $path = preg_replace('/[^\\-\\.\\w]/', '_', $path); $filename = '/tmp/behat/' . implode('/', $path) . '.jpg'; $dir = dirname($filename); // Create directories if needed. if (!@is_dir($dir)) { @mkdir($dir, 0775, TRUE); } file_put_contents($filename, $driver->getScreenshot()); } } }