Updated the test suite dispatcher to allow use of PHPUnit from Composer

Closes #3479
This commit is contained in:
David Yell 2014-05-13 10:57:50 +01:00 committed by Rachman Chavik
parent 3c57300816
commit 140e0bbbd3

View file

@ -136,9 +136,19 @@ class CakeTestSuiteDispatcher {
if (class_exists('PHPUnit_Framework_TestCase')) {
return true;
}
foreach (App::path('vendors') as $vendor) {
$phpunitPath = 'phpunit' . DS . 'phpunit';
if (defined('PHP_WINDOWS_VERSION_MAJOR')) {
$composerGlobalDir[] = env('APPDATA') . DS . 'Composer' . DS . 'vendor' . DS;
} else {
$composerGlobalDir[] = env('HOME') . DS . '.composer' . DS . 'vendor' . DS;
}
$vendors = array_merge(App::path('vendors'), $composerGlobalDir);
foreach ($vendors as $vendor) {
$vendor = rtrim($vendor, DS);
if (is_dir($vendor . DS . 'PHPUnit')) {
if (is_dir($vendor . DS . $phpunitPath)) {
ini_set('include_path', $vendor . DS . $phpunitPath . PATH_SEPARATOR . ini_get('include_path'));
break;
} elseif (is_dir($vendor . DS . 'PHPUnit')) {
ini_set('include_path', $vendor . PATH_SEPARATOR . ini_get('include_path'));
break;
}