From 09d4b74cf16338d29b1d92e9228d2f4cf6ea7322 Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Fri, 27 Jan 2012 15:43:05 -0600 Subject: [PATCH] added core option to test runner. --- laravel/cli/tasks/test/runner.php | 45 ++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/laravel/cli/tasks/test/runner.php b/laravel/cli/tasks/test/runner.php index 75704fa2..09c39688 100644 --- a/laravel/cli/tasks/test/runner.php +++ b/laravel/cli/tasks/test/runner.php @@ -16,21 +16,52 @@ class Runner extends Task { $this->bundle(array(DEFAULT_BUNDLE)); } + /** + * Run the tests for the Laravel framework. + * + * @return void + */ + public function core() + { + if ( ! is_dir(BUNDLE_PATH.'laravel-tests')) + { + throw new \Exception("The bundle [laravel-tests] has not been installed!"); + } + + // When testing the Laravel core, we will just stub the path directly + // so the test bundle is not required to be registered in the bundle + // configuration, as it is kind of a unique bundle. + $this->stub(BUNDLE_PATH.'laravel-tests/cases'); + + $this->test(); + } + /** * Run the tests for a given bundle. * * @param array $arguments * @return void */ - public function bundle($arguments = array()) + public function bundle($bundles = array()) { - // To run PHPUnit for the application, bundles, and the framework - // from one task, we'll dynamically stub PHPUnit.xml files via - // the task and point the test suite to the correct directory - // based on what was requested. - $this->stub(Bundle::path($arguments[0]).'tests'); + if (count($bundles) == 0) + { + $bundles = Bundle::names(); + } - $this->test(); + foreach ($bundles as $bundle) + { + // To run PHPUnit for the application, bundles, and the framework + // from one task, we'll dynamically stub PHPUnit.xml files via + // the task and point the test suite to the correct directory + // based on what was requested. + if (is_dir($path = Bundle::path($bundle).'tests')) + { + $this->stub($path); + + $this->test(); + } + } } /**