Browse Source

Fix fatal error when checking for PHPUnit.

Doubly including PHPUnit/Autoload.php causes fatal errors.
Having access to one of the PHPUnit classes means phpunit exists as
well.

Fixes #2890
mark_story 14 years ago
parent
commit
7107cd6631
1 changed files with 5 additions and 3 deletions
  1. 5 3
      lib/Cake/Console/Shell.php

+ 5 - 3
lib/Cake/Console/Shell.php

@@ -680,12 +680,14 @@ class Shell extends Object {
  * @return boolean Success
  */
 	protected function _checkUnitTest() {
-		if (App::import('Vendor', 'phpunit', array('file' => 'PHPUnit' . DS . 'Autoload.php'))) {
+		if (class_exists('PHPUnit_Framework_TestCase')) {
 			return true;
-		}
-		if (@include 'PHPUnit' . DS . 'Autoload.php') {
+		} elseif (@include 'PHPUnit' . DS . 'Autoload.php') {
+			return true;
+		} elseif (App::import('Vendor', 'phpunit', array('file' => 'PHPUnit' . DS . 'Autoload.php'))) {
 			return true;
 		}
+
 		$prompt = __d('cake_console', 'PHPUnit is not installed. Do you want to bake unit test files anyway?');
 		$unitTest = $this->in($prompt, array('y', 'n'), 'y');
 		$result = strtolower($unitTest) == 'y' || strtolower($unitTest) == 'yes';