protected function Run(TestSuite &$suite, $filename, $extension)
 {
     $suite->Run($this);
     $report = $this->Report();
     if ('string' != gettype($filename)) {
         echo $report;
     } else {
         if ('' == $filename) {
             $filename = tempnam(sys_get_temp_dir(), 'rep');
         }
         $filename .= '.' . $extension;
         $fh = fopen($filename, 'w');
         if (!$fh) {
             echo 'Unable to open file to write to: ' . $filename . "\n";
             return -2;
         }
         echo 'Writing results to: ' . $filename . "\n";
         if (!fwrite($fh, $report)) {
             echo 'Unable to write to file: ' . $filename . "\n";
             return -3;
         }
         fclose($fh);
     }
     return $suite->AllPassed() ? 0 : -1;
 }