我需要在运行测试之前清理数据库,否则我会收到有关重复信息的奇怪错误。
在我的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 :(得分:9)
以下是当Artisan :: call不起作用时如何从测试功能调用artisan。
public function setUp()
{
parent::setUp();
$app->make('artisan')->call('migrate:refresh');
//Artisan::call('migrate:refresh'); // also works now too
}
答案 1 :(得分:2)
最好使用
public function setUp()
{
parent::setUp(); //this is reqired
Artisan::call('migrate:refresh');
}
这在文档中描述
注意:如果在测试类中定义自己的setUp方法,请务必调用parent :: setUp。