mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Revert "API CHANGE Removing support for PHPUnit 3.4 (3.5.0 has been released in Sept 2010). Removing PhpUnitWrapper_3_4, and adding better version detection." - too many complications with our build environments running mixed versions of SilverStripe
This reverts commit 23e342ce03
.
This commit is contained in:
parent
0a4aa9dc17
commit
9d10e88ea5
@ -89,7 +89,7 @@ class TestRunner extends Controller {
|
||||
if (!self::$default_reporter) self::set_reporter(Director::is_cli() ? 'CliDebugView' : 'DebugView');
|
||||
|
||||
if(!PhpUnitWrapper::has_php_unit()) {
|
||||
die("Please install PHPUnit 3.5.0 or newer using pear\n");
|
||||
die("Please install PHPUnit using pear");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -22,7 +22,7 @@ function fileExistsInIncludePath($filename) {
|
||||
/**
|
||||
* PHPUnit Wrapper class.
|
||||
* Base class for PHPUnit wrapper classes to support different PHPUnit versions.
|
||||
* The current implementation supports PHPUnit 3.5.
|
||||
* The current implementation supports PHPUnit 3.4 and PHPUnit 3.5.
|
||||
*/
|
||||
class PhpUnitWrapper implements IPhpUnitWrapper {
|
||||
|
||||
@ -49,6 +49,13 @@ class PhpUnitWrapper implements IPhpUnitWrapper {
|
||||
*/
|
||||
private $reporter = null;
|
||||
|
||||
/**
|
||||
* Shows the version, implemented by the phpunit-wrapper class instance.
|
||||
* This instance implements no phpunit, the version is null.
|
||||
* @var String
|
||||
*/
|
||||
protected $version = null;
|
||||
|
||||
private static $phpunit_wrapper = null;
|
||||
|
||||
/**
|
||||
@ -116,10 +123,11 @@ class PhpUnitWrapper implements IPhpUnitWrapper {
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for $version (@see $version).
|
||||
* @return String
|
||||
*/
|
||||
public function getVersion() {
|
||||
return (method_exists('PHPUnit_Runner_Version', 'id')) ? PHPUnit_Runner_Version::id() : null;
|
||||
return $this->version;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -132,21 +140,25 @@ class PhpUnitWrapper implements IPhpUnitWrapper {
|
||||
if (self::$phpunit_wrapper == null) {
|
||||
if (fileExistsInIncludePath("/PHPUnit/Autoload.php")) {
|
||||
self::$phpunit_wrapper = new PhpUnitWrapper_3_5();
|
||||
} else
|
||||
if (fileExistsInIncludePath("/PHPUnit/Framework.php")) {
|
||||
self::$phpunit_wrapper = new PhpUnitWrapper_3_4();
|
||||
} else {
|
||||
self::$phpunit_wrapper = new PhpUnitWrapper();
|
||||
self::$phpunit_wrapper = new PhpUnitWrapper();
|
||||
}
|
||||
self::$phpunit_wrapper->init();
|
||||
}
|
||||
|
||||
}
|
||||
return self::$phpunit_wrapper;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if one of the two supported PHPUNIT versions is installed.
|
||||
*
|
||||
* @return boolean true if PHPUnit has been installed on the environment.
|
||||
*/
|
||||
static function has_php_unit() {
|
||||
$version = self::inst()->getVersion();
|
||||
return ($version && version_compare($version, '3.5.0', '>='));
|
||||
return (Bool) self::inst()->getVersion();
|
||||
}
|
||||
|
||||
/**
|
||||
|
63
dev/phpunit/PhpUnitWrapper_3_4.php
Normal file
63
dev/phpunit/PhpUnitWrapper_3_4.php
Normal file
@ -0,0 +1,63 @@
|
||||
<?php
|
||||
/**
|
||||
* @package sapphire
|
||||
* @subpackage dev
|
||||
*/
|
||||
|
||||
/**
|
||||
* PHPUnit Wrapper class. Implements the correct behaviour for PHPUnit V3.4.
|
||||
*/
|
||||
class PhpUnitWrapper_3_4 extends PhpUnitWrapper {
|
||||
|
||||
protected $version = 'PhpUnit V3.4';
|
||||
|
||||
/**
|
||||
* Initialise the wrapper class.
|
||||
*/
|
||||
public function init() {
|
||||
parent::init();
|
||||
require_once 'PHPUnit/Framework.php';
|
||||
require_once 'PHPUnit/Util/Report.php';
|
||||
require_once 'PHPUnit/TextUI/TestRunner.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* Overwrites beforeRunTests. Initiates coverage-report generation if
|
||||
* $coverage has been set to true (@see setCoverageStatus).
|
||||
*/
|
||||
protected function beforeRunTests() {
|
||||
|
||||
if($this->getCoverageStatus()) {
|
||||
// blacklist selected folders from coverage report
|
||||
foreach(TestRunner::$coverage_filter_dirs as $dir) {
|
||||
PHPUnit_Util_Filter::addDirectoryToFilter(BASE_PATH . '/' . $dir);
|
||||
}
|
||||
$this->getFrameworkTestResults()->collectCodeCoverageInformation(true);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Overwrites aferRunTests. Creates coverage report and clover report
|
||||
* if required.
|
||||
*/
|
||||
protected function aferRunTests() {
|
||||
|
||||
if($this->getCoverageStatus()) {
|
||||
|
||||
if(!file_exists(ASSETS_PATH . '/coverage-report')) {
|
||||
mkdir(ASSETS_PATH . '/coverage-report');
|
||||
}
|
||||
|
||||
$ret = PHPUnit_Util_Report::render($this->getFrameworkTestResults(), ASSETS_PATH . '/coverage-report/');
|
||||
|
||||
$coverageApp = ASSETS_PATH . '/coverage-report/' . preg_replace('/[^A-Za-z0-9]/','_',preg_replace('/(\/$)|(^\/)/','',Director::baseFolder())) . '.html';
|
||||
$coverageTemplates = ASSETS_PATH . '/coverage-report/' . preg_replace('/[^A-Za-z0-9]/','_',preg_replace('/(\/$)|(^\/)/','',realpath(TEMP_FOLDER))) . '.html';
|
||||
|
||||
echo "<p>Coverage reports available here:<ul>
|
||||
<li><a href=\"$coverageApp\">Coverage report of the application</a></li>
|
||||
<li><a href=\"$coverageTemplates\">Coverage report of the templates</a></li>
|
||||
</ul>";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -6,6 +6,8 @@
|
||||
|
||||
class PhpUnitWrapper_3_5 extends PhpUnitWrapper {
|
||||
|
||||
protected $version = 'PhpUnit V3.5';
|
||||
|
||||
protected $coverage = null;
|
||||
|
||||
protected static $test_name = 'SapphireTest';
|
||||
|
Loading…
Reference in New Issue
Block a user