/** * The main entry point * * @throws BuildException */ function main() { $tests = array(); if ($this->printsummary) { $fe = new FormatterElement(); $fe->setClassName('SummaryPHPUnit2ResultFormatter'); $fe->setUseFile(false); $this->formatters[] = $fe; } foreach ($this->batchtests as $batchtest) { $tests = array_merge($tests, $batchtest->elements()); } foreach ($this->formatters as $fe) { $formatter = $fe->getFormatter(); $formatter->setProject($this->getProject()); if ($fe->getUseFile()) { $destFile = new PhingFile($fe->getToDir(), $fe->getOutfile()); $writer = new FileWriter($destFile->getAbsolutePath()); $formatter->setOutput($writer); } else { $formatter->setOutput($this->getDefaultOutput()); } $formatter->startTestRun(); } foreach ($tests as $test) { $this->execute(new PHPUnit2_Framework_TestSuite(new ReflectionClass($test))); } foreach ($this->formatters as $fe) { $formatter = $fe->getFormatter(); $formatter->endTestRun(); } if ($this->testfailed) { throw new BuildException("One or more tests failed"); } }