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;
 }