$testName = isset($_SERVER['argv'][2]) ? $_SERVER['argv'][2] : ""; $aLayer = array('unit', 'integration'); // Take a copy in memory of the conf file $testConfFile = dirname(__FILE__) . '/../var/test.conf.php'; $testConf = file_get_contents($testConfFile); $oReporter = new ReviveXmlReporter(); $oReporter->paintGroupStart("Tests", count($aLayer)); foreach ($aLayer as $layer) { $aTestFiles = TestFiles::getAllTestFiles($layer); $oReporter->paintGroupStart("Layer {$layer}", count($aTestFiles)); foreach ($aTestFiles as $subLayer => $aDirectories) { $oReporter->paintGroupStart("Sublayer {$subLayer}", count($aDirectories)); foreach ($aDirectories as $dirName => $aFiles) { $oReporter->paintGroupStart("Directory {$dirName} ({$testName})", count($aFiles)); foreach ($aFiles as $fileName) { $oReporter->paintCaseStart("File {$fileName} ({$testName})"); // Prepare the name of the test to display when running for ($counter = 0; $counter < count($GLOBALS['_MAX']['TEST']['groups']) - 1; $counter++) { if ($layer == $GLOBALS['_MAX']['TEST']['groups'][$counter]) { $layerDisplayName = $GLOBALS['_MAX']['TEST'][$GLOBALS['_MAX']['TEST']['groups'][$counter] . '_layers'][$subLayer][0]; } } preg_match('/^([^\\.]+)/', $fileName, $aMatches); $testDisplayName = ucfirst(strtolower($layer)) . '.' . $layerDisplayName . '.' . $aMatches[1]; $oReporter->paintMethodStart($testDisplayName); // Restore conf file to make sure each test runs with a clean one file_put_contents($testConfFile, $testConf); $returncode = -1; $output_lines = ''; $exec = "run.php --type={$layer} --level=file --layer={$subLayer} --folder={$dirName}" . " --file={$fileName} --format=text --host=test 2>&1"; exec("{$php} {$exec}", $output_lines, $returncode);