| // | Demian Turner | // | James Floyd | // +---------------------------------------------------------------------------+ require_once STR_PATH . '/tests/classes/FileScanner.php'; require_once STR_PATH . '/tests/classes/TestEnv.php'; require_once 'SimpleTest/unit_tester.php'; require_once 'SimpleTest/mock_objects.php'; require_once 'SimpleTest/reporter.php'; require_once 'SimpleTest/web_tester.php'; error_reporting(E_ALL); /** * A class for running tests. * * @author Andrew Hill */ class STR_TestRunner { /** * A method to run all the tests in the Max project. * */ function runAll() { $type = $GLOBALS['_STR']['test_type']; $aLayers = array_keys($GLOBALS['_STR'][$type . '_layers']); foreach ($aLayers as $layer) { // Run each layer test in turn STR_TestRunner::runLayer($layer); } } /** * A method to run all tests in a layer. * * @param string $layer The layer group to run. */ function runLayer($layer) { $type = $GLOBALS['_STR']['test_type']; // Set up the environment for the test STR_TestEnv::setup($layer); // Find all the tests in the layer $tests = STR_FileScanner::getLayerTestFiles($type, $layer); // Add the test files to a SimpleTest group $testName = strtoupper($type) . ': ' . $GLOBALS['_STR'][$type . '_layers'][$layer][0] .' Tests'; $test = &new GroupTest($testName); foreach ($tests as $layerCode => $folders) { foreach ($folders as $folder => $files) { foreach ($files as $index => $file) { $test->addTestFile(STR_PATH . '/' . $folder . '/' . constant($type . '_TEST_STORE') . '/' . $file); } } } $reporter = !SGL::runningFromCLI() ? new HtmlReporter() : new TextReporter(); $test->run($reporter); // Tear down the environment for the test STR_TestEnv::teardown($layer); } /** * A method to all tests in a layer/folder. * * @param string $layer The layer group to run. * @param string $folder The folder group to run. */ function runFolder($layer, $folder) { $type = $GLOBALS['_STR']['test_type']; // Set up the environment for the test STR_TestEnv::setup($layer); // Find all the tests in the layer/folder $tests = STR_FileScanner::getTestFiles($type, $layer, STR_PATH . '/' . $folder); // Add the test files to a SimpleTest group $testName = strtoupper($type) . ': ' . $GLOBALS['_STR'][$type . '_layers'][$layer][0] . ': Tests in ' . $folder; $test = &new GroupTest($testName); foreach ($tests as $folder => $data) { foreach ($data as $index => $file) { $test->addTestFile(STR_PATH . '/' . $folder . '/' . constant($type . '_TEST_STORE') . '/' . $file); } } $reporter = !SGL::runningFromCLI() ? new HtmlReporter() : new TextReporter(); $test->run($reporter); // Tear down the environment for the test STR_TestEnv::teardown($layer); } /** A method to run a single test file. * * @param string $layer The layer group to run. * @param string $folder The folder group to run. * @param string $file The file to run. */ function runFile($layer, $folder, $file) { $type = $GLOBALS['_STR']['test_type']; // Set up the environment for the test STR_TestEnv::setup($layer); // Add the test file to a SimpleTest group $testName = strtoupper($type) . ': ' . $GLOBALS['_STR'][$type . '_layers'][$layer][0] . ': ' . $folder . '/' . $file; $test = &new GroupTest($testName); $test->addTestFile(STR_PATH . '/' . $folder . '/' . constant($type . '_TEST_STORE') . '/' . $file); $reporter = !SGL::runningFromCLI() ? new HtmlReporter() : new TextReporter(); $test->run($reporter); // Tear down the environment for the test STR_TestEnv::teardown($layer); } } ?>