/** * @param AfterStepTested $event */ public function onAfterStepTested(AfterStepTested $event) { $result = $event->getTestResult(); //$this->dumpObj($event->getStep()->getArguments()); /** @var Step $step */ $step = new Step(); $step->setKeyword($event->getStep()->getKeyword()); $step->setText($event->getStep()->getText()); $step->setLine($event->getStep()->getLine()); $step->setArguments($event->getStep()->getArguments()); $step->setResult($result); $step->setResultCode($result->getResultCode()); //What is the result of this step ? if (is_a($result, 'Behat\\Behat\\Tester\\Result\\UndefinedStepResult')) { //pending step -> no definition to load $this->pendingSteps[] = $step; } else { if (is_a($result, 'Behat\\Behat\\Tester\\Result\\SkippedStepResult')) { //skipped step /** @var ExecutedStepResult $result */ $step->setDefinition($result->getStepDefinition()); $this->skippedSteps[] = $step; } else { //failed or passed if ($result instanceof ExecutedStepResult) { $step->setDefinition($result->getStepDefinition()); $exception = $result->getException(); if ($exception) { $step->setException($exception->getMessage()); $this->failedSteps[] = $step; } else { $step->setOutput($result->getCallResult()->getStdOut()); $this->passedSteps[] = $step; } } } } $this->currentScenario->addStep($step); $print = $this->renderer->renderAfterStep($this); $this->printer->writeln($print); }