Как протестировать несколько схем mysql с помощью PHPUnit?

Я хотел бы протестировать процесс, который запрашивает несколько схем, используя класс PHPUnit PHPUnit_Extensions_Database_TestCase. Я прорыл документацию, SO и исходный код, но мне кажется, что я должен настроить свою базу данных, используя что-то вроде:

protected function getConnection()
{
    $this->pdo = new PDO('mysql:host=localhost;dbname=unit_test_schema', 'xxxx', 'yyyy');
    return $this->createDefaultDBConnection($this->pdo, 'unit_test_schema');    
}

protected function getDataSet()
{
    return $this->createXMLDataSet(DB_SETUP_DIR.'/schema.xml');
}

Есть ли способ каким-то образом использовать более одной схемы, чтобы я мог протестировать такой запрос, как:

SELECT *
FROM   schema1.tableA
JOIN   schema2.tableB
USING  (id)

EDIT: Чтобы быть ясным, проблема, которую я пытаюсь решить, заключается в том, что я могу только выяснить, как передавать файлы настройки схемы в одну базу данных. Я хотел бы найти способ сказать "create tables1.xml в schema1 и tables2.xml в schema2". Таблицы, указанные в разных xml файлах, будут заполнены и убиты для каждого теста.

Ответы

Ответ 1

Одна вещь, которую я сделал, создала определение для каждой схемы, а затем переопределило определение при модульном тестировании

define('schema1', 'schema1_prod');
define('schema2', 'schema2_prod');

Затем для модульного тестирования

define('schema1', 'unit_tests');
define('schema2', 'unit_tests');

Если у вас есть имена таблиц в нескольких схемах, это все равно сломается, но это поможет, если вы этого не сделаете.