Changeset 1782b02


Ignore:
Timestamp:
10/31/11 10:43:29 (7 months ago)
Author:
mrook
Branches:
master
Children:
1576bb0
Parents:
e551855
git-author:
Michiel Rook <mrook@…> (10/31/11 10:43:29)
git-committer:
Michiel Rook <mrook@…> (10/31/11 10:43:29)
Message:

Refs #812 - various fixes for PHPUnit 3.6 / PHP_CodeCoverage 1.1.0

Files:
6 edited

Legend:

Unmodified
Added
Removed
  • build/BuildPhingPEARPackageTask.php

    re551855 r1782b02  
    198198            $package->addPackageDepWithChannel( 'optional', 'VersionControl_SVN', 'pear.php.net', '0.3.4'); 
    199199            $package->addPackageDepWithChannel( 'optional', 'VersionControl_Git', 'pear.php.net', '0.4.3'); 
    200             $package->addPackageDepWithChannel( 'optional', 'PHPUnit', 'pear.phpunit.de', '3.4.0'); 
     200            $package->addPackageDepWithChannel( 'optional', 'PHPUnit', 'pear.phpunit.de', '3.6.0'); 
     201            $package->addPackageDepWithChannel( 'optional', 'PHP_CodeCoverage', 'pear.phpunit.de', '1.1.0'); 
    201202            $package->addPackageDepWithChannel( 'optional', 'PhpDocumentor', 'pear.php.net', '1.4.0'); 
    202203            $package->addPackageDepWithChannel( 'optional', 'Xdebug', 'pecl.php.net', '2.0.5'); 
  • classes/phing/tasks/ext/coverage/CoverageMerger.php

    r809b104 r1782b02  
    3939        reset($right); 
    4040 
    41         while (current($left) && current($right)) { 
     41        while (current($left) !== false && current($right) !== false) { 
    4242            $linenr_left = key($left); 
    4343            $linenr_right = key($right); 
     
    6161        } 
    6262 
    63         while (current($left)) { 
     63        while (current($left) !== false) { 
    6464            $coverageMerged[key($left)] = current($left); 
    6565            next($left); 
    6666        } 
    6767 
    68         while (current($right)) { 
     68        while (current($right) !== false) { 
    6969            $coverageMerged[key($right)] = current($right); 
    7070            next($right); 
     
    9090         
    9191        foreach ($coverageTotal as $filename => $data) { 
    92             if (version_compare(PHPUnit_Runner_Version::id(), '3.5.0') >=0) { 
    93                 $ignoreLines = PHP_CodeCoverage_Util::getLinesToBeIgnored($filename); 
    94             } else { 
    95                 // FIXME retrieve ignored lines for PHPUnit Version < 3.5.0 
    96                 $ignoreLines = array(); 
    97             } 
     92            $ignoreLines = PHP_CodeCoverage_Util::getLinesToBeIgnored($filename); 
    9893             
    9994            $lines = array(); 
  • classes/phing/tasks/ext/coverage/CoverageSetupTask.php

    r48fd4f8 r1782b02  
    167167             
    168168            if ($newFilter) { 
    169                 PHP_CodeCoverage_Filter::getInstance()->addFileToWhiteList($file['fullname']); 
     169                //PHP_CodeCoverage_Filter::getInstance()->addFileToWhiteList($file['fullname']); 
    170170            } else { 
    171171                PHPUnit_Util_Filter::addFileToWhitelist($file['fullname']); 
  • classes/phing/tasks/ext/phpunit/PHPUnitTask.php

    r2bfce10 r1782b02  
    5050    private $testfailed = false; 
    5151    private $testfailuremessage = ""; 
    52     private $codecoverage = false; 
     52    private $codecoverage = null; 
    5353    private $groups = array(); 
    5454    private $excludeGroups = array(); 
     
    6363     */ 
    6464    public function init() { 
    65         if (version_compare(PHP_VERSION, '5.0.3') < 0) 
    66         { 
    67             throw new BuildException("PHPUnitTask requires PHP version >= 5.0.3", $this->getLocation()); 
    68         } 
    69          
    7065        /** 
    7166         * Determine PHPUnit version number 
     
    7974        $version = PHPUnit_Runner_Version::id(); 
    8075 
    81         if (version_compare($version, '3.2.0') < 0) 
    82         { 
    83             throw new BuildException("PHPUnitTask requires PHPUnit version >= 3.2.0", $this->getLocation()); 
     76        if (version_compare($version, '3.6.0') < 0) 
     77        { 
     78            throw new BuildException("PHPUnitTask requires PHPUnit version >= 3.6.0", $this->getLocation()); 
    8479        } 
    8580             
     
    9893            define('PHPUnit_MAIN_METHOD', 'PHPUnitTask::undefined'); 
    9994        } 
    100          
    101         /** 
    102          * Add some defaults to the PHPUnit filter 
    103          */ 
    104         $pwd = dirname(__FILE__); 
    105         $path = realpath($pwd . '/../../../'); 
    106          
    107         if (version_compare($version, '3.5.0') >= 0) { 
    108             PHP_CodeCoverage_Filter::getInstance()->addDirectoryToBlacklist($path); 
    109         } else { 
    110             require_once 'PHPUnit/Framework.php'; 
    111             require_once 'PHPUnit/Util/Filter.php'; 
    112              
    113             PHPUnit_Util_Filter::addDirectoryToFilter($path); 
    114         } 
    11595    } 
    11696     
     
    315295        $runner = new PHPUnitTestRunner($this->project, $this->groups, $this->excludeGroups, $this->processIsolation); 
    316296         
    317         $runner->setCodecoverage($this->codecoverage); 
     297        if ($this->codecoverage) { 
     298            /** 
     299             * Add some defaults to the PHPUnit filter 
     300             */ 
     301            $pwd = dirname(__FILE__); 
     302            $path = realpath($pwd . '/../../../'); 
     303             
     304            $filter = new PHP_CodeCoverage_Filter(); 
     305            $filter->addDirectoryToBlacklist($path); 
     306            $runner->setCodecoverage(new PHP_CodeCoverage(null, $filter)); 
     307        } 
     308         
    318309        $runner->setUseCustomErrorHandler($this->usecustomerrorhandler); 
    319310 
  • classes/phing/tasks/ext/phpunit/PHPUnitTestRunner.php

    r30bee6b r1782b02  
    2020 */ 
    2121 
    22 // phpunit 3.5 ships with autoloader 
    23 // @todo - find out sane model for Phing and PHPUnit autoloaders/hooks co-existense 
    24 if (version_compare(PHPUnit_Runner_Version::id(), '3.5.0') >=0) { 
    25     require_once 'PHPUnit/Autoload.php'; 
    26 } 
    27 require_once 'PHPUnit/Util/ErrorHandler.php'; 
    28 require_once 'PHPUnit/Util/Filter.php'; 
    29 require_once 'PHPUnit/Runner/BaseTestRunner.php'; 
    30 require_once 'PHPUnit/Framework/TestListener.php'; 
     22require_once 'PHPUnit/Autoload.php'; 
    3123require_once 'phing/tasks/ext/coverage/CoverageMerger.php'; 
    3224require_once 'phing/system/util/Timer.php'; 
     
    5547    private $formatters = array(); 
    5648     
    57     private $codecoverage = false; 
     49    private $codecoverage = null; 
    5850     
    5951    private $project = NULL; 
     
    9082    } 
    9183     
    92     public static function handleError($level, $message, $file, $line) 
     84    public function handleError($level, $message, $file, $line) 
    9385    { 
    9486        $isFiltered = false; 
    95         if (version_compare(PHPUnit_Runner_Version::id(), '3.5.0') >=0) { 
    96             $isFiltered = PHP_CodeCoverage::getInstance()->filter()->isFiltered( 
     87         
     88        if ($this->codecoverage) { 
     89            $isFiltered = $this->codecoverage->filter()->isFiltered( 
    9790                $file, array(), true 
    9891            ); 
    99         } else { 
    100             $isFiltered = PHPUnit_Util_Filter::isFiltered($file, true, true); 
    101         } 
     92        } 
     93         
    10294        if (!$isFiltered) { 
    10395            return PHPUnit_Util_ErrorHandler::handleError($level, $message, $file, $line); 
     
    114106        if ($this->codecoverage) 
    115107        { 
    116             $res->collectCodeCoverageInformation(TRUE); 
     108            $res->setCodeCoverage($this->codecoverage); 
    117109        } 
    118110         
     
    127119        if ($this->useCustomErrorHandler) 
    128120        { 
    129             $oldErrorHandler = set_error_handler(array('PHPUnitTestRunner', 'handleError'), E_ALL | E_STRICT); 
     121            $oldErrorHandler = set_error_handler(array($this, 'handleError'), E_ALL | E_STRICT); 
    130122        } 
    131123         
     
    145137        if ($this->codecoverage) 
    146138        { 
    147             if (version_compare(PHPUnit_Runner_Version::id(), '3.5.0') >=0) { 
    148                 $coverage = $res->getCodeCoverage(); 
    149              
    150                 $summary = $coverage->getSummary(); 
    151             } else { 
    152                 $coverageInformation = $res->getCodeCoverageInformation(); 
    153                 PHPUnit_Util_CodeCoverage::clearSummary(); 
    154                 $summary = PHPUnit_Util_CodeCoverage::getSummary($coverageInformation); 
    155             } 
    156  
    157             CoverageMerger::merge($this->project, $summary); 
     139            CoverageMerger::merge($this->project, $this->codecoverage->getData()); 
    158140        } 
    159141         
  • classes/phing/tasks/ext/phpunit/formatter/CloverPHPUnitResultFormatter.php

    red3ff78 r1782b02  
    6767    public function endTestRun() 
    6868    { 
    69         if (version_compare($this->version, '3.5.0') >=0) { 
    70             require_once 'PHP/CodeCoverage/Report/Clover.php'; 
    71              
    72             $coverage = $this->result->getCodeCoverage(); 
    73              
    74             $clover = new PHP_CodeCoverage_Report_Clover(); 
    75              
    76             $contents = $clover->process($coverage); 
    77         } else { 
    78             require_once 'PHPUnit/Util/Log/CodeCoverage/XML/Clover.php'; 
    79              
    80             $clover = new PHPUnit_Util_Log_CodeCoverage_XML_Clover(null); 
    81              
    82             ob_start(); 
    83              
    84             $clover->process($this->result); 
    85             $contents = ob_get_contents(); 
    86              
    87             ob_end_clean(); 
    88         } 
     69        require_once 'PHP/CodeCoverage/Report/Clover.php'; 
     70         
     71        $coverage = $this->result->getCodeCoverage(); 
     72         
     73        $clover = new PHP_CodeCoverage_Report_Clover(); 
     74         
     75        $contents = $clover->process($coverage); 
    8976 
    9077        if ($this->out) 
Note: See TracChangeset for help on using the changeset viewer.