2016-03-14 2 views
1

J'ai quelques classes de test PHPUnit qui utilisent des appareils. J'ai pour 10 tables fixes définies. Structure du répertoire:PHPUnit charge trop d'appareils

tests 
    fixtures 
     table1.php 
     ... 
     table10.php 
    unit 
     MyTestClass.php 

J'ai maintenant une classe de test (MyTestClass.php), dans lequel je ne veux que pour remplir 2 de ces tables. J'ai le code suivant dans cette classe.

class BaseACAExportTest extends CDbTestCase 
{ 
    public $fixtures = array(
     'table1' => 'Model1', 
     'table2' => 'Model2' 
    ); 

    public function setUp() 
    { 
     // Call the parent setUp to set up the fixtures 
     parent::setUp(); 
     die(); 
    } 

    public testMe() 
    { 
     // Test here 
    } 
} 

La fonction TruncateDatabase est une fonction d'assistance sur mesure qui tronque les 10 tables. J'ai vérifié que cette fonction fonctionne. Je cours les tests et j'inspecte après l'instruction die la base de données. Dans celui-ci, je vois toutes les 10 tables, au lieu de seulement les deux tables que j'ai définies dans fixtures. Pourquoi remplit-il toutes les tables définies dans le répertoire fixtures? Y a-t-il un moyen de contourner cela?

Répondre

0

C'est la conception du gestionnaire d'appareils de Yii.

Tous les fichiers du dossier des appareils sont utilisés pour remplir votre base de données. Ce que vous écrivez dans la propriété $fixtures est juste la méthode pour accéder plus rapidement aux données des appareils dans vos tests.

Vous pouvez contourner ceci uniquement en écrivant votre propre gestionnaire d'appareils et en remplaçant celui par défaut.