public function call($suffix = null) { $this->calls++; $scenario = $this->scenario; if (isset($suffix)) { $scenario = new ScenarioNode($scenario->getTitle() . $suffix, $scenario->getTags(), $scenario->getSteps(), $scenario->getKeyword(), $scenario->getLine()); } $feature = $this->feature; $skip = $this->skip; $isolatedEnvironment = $this->env; $tester = $scenario instanceof OutlineNode ? $this->outlineTester : $this->scenarioTester; $setup = $tester->setUp($isolatedEnvironment, $feature, $scenario, $skip); $localSkip = !$setup->isSuccessful() || $skip; $testResult = $tester->test($isolatedEnvironment, $feature, $scenario, $localSkip); $teardown = $tester->tearDown($isolatedEnvironment, $feature, $scenario, $localSkip, $testResult); $integerResult = new IntegerTestResult($testResult->getResultCode()); $result = new TestWithSetupResult($setup, $integerResult, $teardown); $this->results[] = $result; }