public function beforeStep(\Behat\Behat\EventDispatcher\Event\BeforeStepTested $event) { $currentStep = $event->getStep(); $feature = $event->getFeature(); $scenarios = $feature->getScenarios(); foreach ($scenarios as $scenario) { if ($scenario instanceof OutlineNode) { $steps = $scenario->getSteps(); if (current($steps)->getLine() === $currentStep->getLine()) { $this->init(); } } } }
/** * @param BeforeStepTested $event */ public function onBefore(BeforeStepTested $event) { $step = $event->getStep(); $class = new ReflectionClass($step); $propertyValue = $class->getProperty('arguments'); $propertyValue->setAccessible(true); $arguments = $propertyValue->getValue($step); /** * @var TableNode $tableNode */ foreach ($arguments as $id => $argument) { if ($argument instanceof TableNode) { $arguments[$id] = new NestedTableNode($argument->getTable()); } } $propertyValue->setValue($step, $arguments); }