2017-04-27 1 views
0

Ich habe ein Problem beim Ausführen von Migrationen während eines Tests. Ich habe Migrationen an verschiedenen Orten. Benutzermigrationen hängen von Unternehmensmigrationen ab, aber jedes Mal, wenn ich Tests durchführe, tritt ein Fehler auf, dass die Tabelle "Firmen" nicht existiert.Migrationen in Laravel funktionieren beim Testen nicht ordnungsgemäß

-Code von Testklasse:

protected function setUp() 
{ 
    parent::setUp(); 

    $this->artisan('migrate', [ 
     '--path' => ['Modules/Company/Database/Migrations', 
          'Modules/User/Database/Migrations'], 
    ]); 
} 

protected function tearDown() 
{ 
    $this->artisan('migrate:reset', [ 
     '--path' => ['Modules/User/Database/Migrations', 
          'Modules/Company/Database/Migrations'], 
    ]); 

    parent::tearDown(); 

} 

Kann mir jemand helfen, bitte. Danke!

Antwort

1

Problem war an zwei Stellen:

  • 1) Option --path wurde als ein Array bereitgestellt (aber keine Warnungen angezeigt werden);
  • 2) Befehl migrate: reset (es setzt ALLE Migrationen mit dem bereitgestellten --path zurück, so dass der Fehler 'Undefined index: create_company_table' passiert).

Endgültige Version.

protected function setUp() 
{ 
    parent::setUp(); 
    $this->artisan('migrate', [ 
     '--path' => 'Modules/Company/Database/Migrations', 
    ]); 
    $this->artisan('migrate', [ 
     '--path' => 'Modules/User/Database/Migrations', 
    ]); 
} 

protected function tearDown() 
{ 
    $this->artisan('migrate:rollback', [ 
     '--path' => 'Modules/User/Database/Migrations/', 
    ]); 
    $this->artisan('migrate:rollback', [ 
     '--path' => 'Modules/Company/Database/Migrations/', 
    ]); 

    parent::tearDown(); 

} 
Verwandte Themen