2011-05-04 21 views
13

Me gustaría probar un proceso que realiza consultas en varios esquemas utilizando la clase PHPUnit_Extensions_Database_TestCase de PHPUnit. Yo he cavado a través de la documentación, SO y el código fuente, pero parece que tengo que configurar mi base de datos usando algo como:¿Cómo probar a través de múltiples esquemas mysql con PHPUnit?

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'); 
} 

¿Hay una manera de utilizar alguna manera más de un esquema de modo que pueda probar una consulta como:

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

EDIT: para que quede claro, el tema que estoy tratando de resolver es que sólo puedo encontrar la manera de pasar los archivos de configuración del esquema de una base de datos. Me gustaría encontrar una forma de decir "crear tables1.xml en schema1 y tables2.xml en schema2". Las tablas a las que se hace referencia en los diferentes archivos xml se rellenarán y eliminarán para cada prueba.

Respuesta

3

Una cosa que he hecho se crea una definición para cada esquema, a continuación, pasó por encima de la definición, cuando la unidad de pruebas

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

A continuación, para las pruebas unitarias

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

Si usted tiene como nombres de tabla través Esquemas múltiples esto aún se romperá, pero debería ayudar si no lo hace.

Cuestiones relacionadas