runtests.php

来自「php 开发的内容管理系统」· PHP 代码 · 共 101 行

PHP
101
字号
<?phpif( php_sapi_name() != 'cli' ) {	echo 'Must be run from the command line.';	die( -1 );}error_reporting( E_ALL );define( "MEDIAWIKI", true );set_include_path( get_include_path() . PATH_SEPARATOR . 'PHPUnit' );set_include_path( get_include_path() . PATH_SEPARATOR . '..' );require_once( 'PHPUnit.php' );$testOptions = array(	'mysql4' => array(		'server' => null,		'user' => null,		'password' => null,		'database' => null ),	'postgres' => array(		'server' => null,		'user' => null,		'password' => null,		'database' => null ),	);if( file_exists( 'LocalTestSettings.php' ) ) {	include( './LocalTestSettings.php' );}$tests = array(	'GlobalTest',	'DatabaseTest',	'SearchMySQL4Test',	'ArticleTest',	'SanitizerTest',	'ImageTest'	);if( isset( $_SERVER['argv'][1] ) ) {	// to override...	$tests = array( $_SERVER['argv'][1] );}foreach( $tests as $test ) {	require_once( $test . '.php' );	$suite = new PHPUnit_TestSuite( $test );	$result = PHPUnit::run( $suite );	echo $result->toString();}/** * @param string $serverType * @param array $tables */function &buildTestDatabase( $serverType, $tables ) {	global $testOptions, $wgDBprefix;	$wgDBprefix = 'parsertest';	$db =& new Database(		$testOptions[$serverType]['server'],		$testOptions[$serverType]['user'],		$testOptions[$serverType]['password'],		$testOptions[$serverType]['database'] );	if( $db->isOpen() ) {		if (!(strcmp($db->getServerVersion(), '4.1') < 0 and stristr($db->getSoftwareLink(), 'MySQL'))) {			# Database that supports CREATE TABLE ... LIKE			foreach ($tables as $tbl) {				$newTableName = $db->tableName( $tbl );				#$tableName = $this->oldTableNames[$tbl];				$tableName = $tbl;				$db->query("CREATE TEMPORARY TABLE $newTableName (LIKE $tableName INCLUDING DEFAULTS)");			}		} else {			# Hack for MySQL versions < 4.1, which don't support			# "CREATE TABLE ... LIKE". Note that			# "CREATE TEMPORARY TABLE ... SELECT * FROM ... LIMIT 0"			# would not create the indexes we need....			foreach ($tables as $tbl) {				$res = $db->query("SHOW CREATE TABLE $tbl");				$row = $db->fetchRow($res);				$create = $row[1];				$create_tmp = preg_replace('/CREATE TABLE `(.*?)`/', 'CREATE TEMPORARY TABLE `'					. $wgDBprefix . '\\1`', $create);				if ($create === $create_tmp) {					# Couldn't do replacement					wfDie( "could not create temporary table $tbl" );				}				$db->query($create_tmp);			}		}		return $db;	} else {		// Something amiss		return null;	}}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?