From 5f56f5bd40e2835ca0dfb2998aecaeddbc056185 Mon Sep 17 00:00:00 2001 From: wei <> Date: Wed, 5 Jul 2006 07:58:16 +0000 Subject: add command line option to create new test fixtures --- framework/prado-cli.php | 78 +++++++++++++++++++++++++++++++++++++++-- tests/test_tools/unit_tests.php | 7 +--- 2 files changed, 76 insertions(+), 9 deletions(-) diff --git a/framework/prado-cli.php b/framework/prado-cli.php index f8ce826c..8d629140 100755 --- a/framework/prado-cli.php +++ b/framework/prado-cli.php @@ -10,12 +10,16 @@ if(!isset($_SERVER['argv'])) //command line options. $options['create'] = array('c:', 'create=', '', 'create a new project '); +$options['tests'] = array('t', 'create-tests', '', 'create unit and function test fixtures'); + $console = new ConsoleOptions($options, $_SERVER['argv']); if($console->hasOptions()) { if($dir = $console->getOption('create')) create_new_prado_project($dir); + if($console->getOptions('tests')) + create_test_fixtures($dir); } else { @@ -51,15 +55,77 @@ function create_new_prado_project($dir) $htaccessFile = $protectedPath.'/.htaccess'; $defaultPageFile = $pagesPath.'/Home.page'; + $tests = $basePath.'/tests'; + $unit_tests = $tests.'/unit'; + $functional_tests = $tests.'/functional'; + create_directory($basePath, 0755); create_directory($assetPath,0777); create_directory($protectedPath,0755); create_directory($runtimePath,0777); create_directory($pagesPath,0755); + + create_directory($tests,0755); + create_directory($unit_tests,0755); + create_directory($functional_tests,0755); + + create_file($indexFile, render_index_file()); + create_file($htaccessFile, render_htaccess_file()); + create_file($defaultPageFile, render_default_page()); +} + +function create_test_fixtures($dir) +{ + if(strlen(trim($dir)) == 0) + return; - file_put_contents($indexFile, render_index_file()); - file_put_contents($htaccessFile, render_htaccess_file()); - file_put_contents($defaultPageFile, render_default_page()); + $rootPath = realpath(dirname(trim($dir))); + $basePath = $rootPath.'/'.basename($dir); + + $tests = $basePath.'/tests'; + $unit_tests = $tests.'/unit'; + $functional_tests = $tests.'/functional'; + + create_directory($tests,0755); + create_directory($unit_tests,0755); + create_directory($functional_tests,0755); + + $unit_test_index = $tests.'/unit.php'; + $functional_test_index = $tests.'/functional.php'; + + create_file($unit_test_index, render_unit_test_fixture()); + create_file($functional_test_index, render_functional_test_fixture()); +} + +function render_unit_test_fixture() +{ + $tester = realpath(dirname(__FILE__).'/../tests/test_tools/unit_tests.php'); +return 'run(new HtmlReporter()); + +?>'; +} + +function render_functional_test_fixture() +{ + $tester = realpath(dirname(__FILE__).'/../tests/test_tools/functional_tests.php'); +return 'run(new SimpleReporter()); + +?>'; } function create_directory($dir, $mask) @@ -70,6 +136,12 @@ function create_directory($dir, $mask) chmod($dir, $mask); } +function create_file($filename, $content) +{ + if(!is_file($filename)) + file_put_contents($filename, $content); +} + function render_index_file() { $framework = realpath(dirname(__FILE__)).'/prado.php'; diff --git a/tests/test_tools/unit_tests.php b/tests/test_tools/unit_tests.php index b714f452..5c1c95bd 100644 --- a/tests/test_tools/unit_tests.php +++ b/tests/test_tools/unit_tests.php @@ -1,7 +1,7 @@