Changeset 219

Show
Ignore:
Timestamp:
08/15/07 18:58:31 (1 year ago)
Author:
mrook
Message:

Support loading/running of PHPUnit_Framework_TestSuite subclasses (closes issue #48)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/classes/phing/tasks/ext/phpunit/BatchTest.php

    r148 r219  
    2424/** 
    2525 * Scans a list of files given by the fileset attribute, extracts 
    26  * all subclasses of PHPUnit(2)_Framework_TestCase
     26 * all subclasses of PHPUnit(2)_Framework_TestCase / PHPUnit(2)_Framework_TestSuite
    2727 * 
    2828 * @author Michiel Rook <michiel.rook@gmail.com> 
     
    131131         
    132132        /** 
    133          * Checks wheter $input is a testcase subclass. 
     133         * Checks wheter $input is a subclass of PHPUnit(2)_Framework_TestCasse 
     134         * or PHPUnit(2)_Framework_TestSuite 
    134135         */ 
    135136        private function isTestCase($input) 
    136137        { 
    137                 return is_subclass_of($input, 'PHPUnit2_Framework_TestCase') || is_subclass_of($input, 'PHPUnit_Framework_TestCase'); 
     138                return is_subclass_of($input, 'PHPUnit2_Framework_TestCase') || is_subclass_of($input, 'PHPUnit_Framework_TestCase') 
     139                        || is_subclass_of($input, 'PHPUnit2_Framework_TestSuite') || is_subclass_of($input, 'PHPUnit_Framework_TestSuite'); 
    138140        } 
    139141         
    140142        /** 
    141          * Filters an array of classes, removes all classes that are not subclasses of PHPUnit(2)_Framework_TestCase
     143         * Filters an array of classes, removes all classes that are not test cases or test suites
    142144         * or classes that are declared abstract 
    143145         */ 
     
    150152 
    151153        /** 
    152          * Returns an array of PHPUnit2_Framework_TestCase classes that are declared 
     154         * Returns an array of test cases and test suites that are declared 
    153155         * by the files included by the filesets 
    154156         * 
    155          * @return array an array of PHPUnit2_Framework_TestCase classes. 
     157         * @return array an array of PHPUnit(2)_Framework_TestCase or PHPUnit(2)_Framework_TestSuite classes. 
    156158         */ 
    157159        function elements() 
  • trunk/classes/phing/tasks/ext/phpunit/PHPUnitTask.php

    r208 r219  
    225225                        $suite = NULL; 
    226226                         
    227                         if (PHPUnitUtil::$installedVersion == 3) 
    228                         { 
    229                                 require_once 'PHPUnit/Framework/TestSuite.php'; 
    230                                 $suite = new PHPUnit_Framework_TestSuite(new ReflectionClass($test)); 
     227                        if (is_subclass_of($test, 'PHPUnit_Framework_TestSuite') || is_subclass_of($test, 'PHPUnit2_Framework_TestSuite')) 
     228                        { 
     229                                $suite = $test; 
    231230                        } 
    232231                        else 
    233232                        { 
    234                                 require_once 'PHPUnit2/Framework/TestSuite.php'; 
    235                                 $suite = new PHPUnit2_Framework_TestSuite(new ReflectionClass($test)); 
     233                                if (PHPUnitUtil::$installedVersion == 3) 
     234                                { 
     235                                        require_once 'PHPUnit/Framework/TestSuite.php'; 
     236                                        $suite = new PHPUnit_Framework_TestSuite(new ReflectionClass($test)); 
     237                                } 
     238                                else 
     239                                { 
     240                                        require_once 'PHPUnit2/Framework/TestSuite.php'; 
     241                                        $suite = new PHPUnit2_Framework_TestSuite(new ReflectionClass($test)); 
     242                                } 
    236243                        } 
    237244