当我在laravel中使用PHPUnit并在运行PHPUnit后将工厂添加到我自己的测试类时,在控制台中出现此错误:
SQLSTATE[HY000]: General error: 1 no such table: users
我的测试类方法:
public function testExistSomeTextsInIndexPage()
{
$users= factory(User::class)->create();
$this->get('/')->assertSee($users->name);
}
这个工厂代码在我项目的其他部分工作正常,只是在测试类中显示错误
2条答案
按热度按时间cvxl0en21#
你应该把
Illuminate\Foundation\Testing\DatabaseMigrations
作为trait包含进来。有关于这个的文档。注意:设置正确的数据库凭证,如果使用现有数据库的凭证,会覆盖数据库,建议使用
in-memory
数据库和SQLite,示例hereukdjmx9f2#
当我插入use RefreshDatabase时,它为我工作;
就像这样:
注意:在我使用Laravel的情况下要小心:内存数据库,这个函数会删除所有创建的数据