2013-05-29 5 views
3

Мне нужно очистить базу данных перед запуском тестов или получить странные ошибки о дублирующей информации.Artisan :: call() in Test failing

в моем файле PostTest.php создать метод установки

public function setUp() 
{ 
    Artisan::call('migrate:refresh'); 
} 

PHPUnit тесты затем сказать:

PHP Fatal error: Class 'Artisan' not found in C:\wamp\www\squigglemd\app\tests\PostTest.php on line 11 

Я также попытался:

\Artisan::call('migrate:refresh'); 

Как может Я называю Artisan из моих тестов?

+0

Вы должны просто позвонить 'родительской :: нАлАдкИ()', так как вы перекрывая этот метод. –

ответ

8

Ниже описано, как вызвать ремесленник из тестовой функции, если Artisan :: call не работает.

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

    $app->make('artisan')->call('migrate:refresh'); 
    //Artisan::call('migrate:refresh'); // also works now too 


} 
0

It`s лучше использовать

public function setUp() 
{ 
    parent::setUp(); //this is reqired 

     Artisan::call('migrate:refresh'); 
} 

Это описано в документации

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

см http://laravel.com/docs/5.1/testing#introduction

+0

Это то же самое, что вы используете фасад. (исправлено родительское настроение ... это был также вопрос laravel 4) – Matalina