本文整理汇总了PHP中MediaWikiTestCase::dbSetup方法的典型用法代码示例。如果您正苦于以下问题:PHP MediaWikiTestCase::dbSetup方法的具体用法?PHP MediaWikiTestCase::dbSetup怎么用?PHP MediaWikiTestCase::dbSetup使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MediaWikiTestCase
的用法示例。
在下文中一共展示了MediaWikiTestCase::dbSetup方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: run
function run(PHPUnit_Framework_TestResult $result = NULL)
{
/* Some functions require some kind of caching, and will end up using the db,
* which we can't allow, as that would open a new connection for mysql.
* Replace with a HashBag. They would not be going to persist anyway.
*/
ObjectCache::$instances[CACHE_DB] = new HashBagOStuff();
if ($this->needsDB()) {
global $wgDBprefix;
$this->useTemporaryTables = !$this->getCliArg('use-normal-tables');
$this->reuseDB = $this->getCliArg('reuse-db');
$this->db = wfGetDB(DB_MASTER);
$this->checkDbIsSupported();
$this->oldTablePrefix = $wgDBprefix;
if (!self::$dbSetup) {
$this->initDB();
self::$dbSetup = true;
}
$this->addCoreDBData();
$this->addDBData();
parent::run($result);
$this->resetDB();
} else {
parent::run($result);
}
}
示例2: setupTestDB
/**
* Creates an empty skeleton of the wiki database by cloning its structure
* to equivalent tables using the given $prefix. Then sets MediaWiki to
* use the new set of tables (aka schema) instead of the original set.
*
* This is used to generate a dummy table set, typically consisting of temporary
* tables, that will be used by tests instead of the original wiki database tables.
*
* @since 1.21
*
* @note the original table prefix is stored in self::$oldTablePrefix. This is used
* by teardownTestDB() to return the wiki to using the original table set.
*
* @note this method only works when first called. Subsequent calls have no effect,
* even if using different parameters.
*
* @param DatabaseBase $db The database connection
* @param string $prefix The prefix to use for the new table set (aka schema).
*
* @throws MWException If the database table prefix is already $prefix
*/
public static function setupTestDB(DatabaseBase $db, $prefix)
{
global $wgDBprefix;
if ($wgDBprefix === $prefix) {
throw new MWException('Cannot run unit tests, the database prefix is already "' . $prefix . '"');
}
if (self::$dbSetup) {
return;
}
$tablesCloned = self::listTables($db);
$dbClone = new CloneDatabase($db, $tablesCloned, $prefix);
$dbClone->useTemporaryTables(self::$useTemporaryTables);
self::$dbSetup = true;
self::$oldTablePrefix = $wgDBprefix;
if (($db->getType() == 'oracle' || !self::$useTemporaryTables) && self::$reuseDB) {
CloneDatabase::changePrefix($prefix);
return;
} else {
$dbClone->cloneTableStructure();
}
if ($db->getType() == 'oracle') {
$db->query('BEGIN FILL_WIKI_INFO; END;');
}
}
示例3: setupTestDB
/**
* Creates an empty skeleton of the wiki database by cloning its structure
* to equivalent tables using the given $prefix. Then sets MediaWiki to
* use the new set of tables (aka schema) instead of the original set.
*
* This is used to generate a dummy table set, typically consisting of temporary
* tables, that will be used by tests instead of the original wiki database tables.
*
* @since 1.21
*
* @note the original table prefix is stored in self::$oldTablePrefix. This is used
* by teardownTestDB() to return the wiki to using the original table set.
*
* @note this method only works when first called. Subsequent calls have no effect,
* even if using different parameters.
*
* @param Database $db The database connection
* @param string $prefix The prefix to use for the new table set (aka schema).
*
* @throws MWException If the database table prefix is already $prefix
*/
public static function setupTestDB(Database $db, $prefix)
{
if (self::$dbSetup) {
return;
}
if ($db->tablePrefix() === $prefix) {
throw new MWException('Cannot run unit tests, the database prefix is already "' . $prefix . '"');
}
// TODO: the below should be re-written as soon as LBFactory, LoadBalancer,
// and Database no longer use global state.
self::$dbSetup = true;
if (!self::setupDatabaseWithTestPrefix($db, $prefix)) {
return;
}
// Assuming this isn't needed for External Store database, and not sure if the procedure
// would be available there.
if ($db->getType() == 'oracle') {
$db->query('BEGIN FILL_WIKI_INFO; END;');
}
}