2017-04-27 152 views
0

我在進行測試時運行遷移時遇到問題。我有不同的地方遷移。用戶遷移依賴於公司遷移,但每次運行測試時,我都有一個表'公司'不存在的錯誤。從測試類Laravel中的遷移在測試時無法正常工作

代碼:

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(); 

} 

誰能幫助我,請。 謝謝!

回答

1

問題是在兩個地方:

  • 1)選項--path被作爲陣列提供(但不顯示警告);
  • 2)命令migrate:reset(使用提供的--path重置所有的遷移,所以發生錯誤'Undefined index:create_company_table')。

最終版本。

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(); 

}