Laravel测试错误:数据库状态[HY000]:一般错误:1无此类表格:用户

anauzrmj  于 2023-03-31  发布在  其他
关注(0)|答案(2)|浏览(124)

当我在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);
     
}

这个工厂代码在我项目的其他部分工作正常,只是在测试类中显示错误

cvxl0en2

cvxl0en21#

你应该把Illuminate\Foundation\Testing\DatabaseMigrations作为trait包含进来。有关于这个的文档。

use Illuminate\Foundation\Testing\DatabaseMigrations;
use Tests\TestCase;

class ExampleTest extends TestCase
{
    use DatabaseMigrations;
}

注意:设置正确的数据库凭证,如果使用现有数据库的凭证,会覆盖数据库,建议使用in-memory数据库和SQLite,示例here

ukdjmx9f

ukdjmx9f2#

当我插入use RefreshDatabase时,它为我工作;
就像这样:

use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;

class ExampleTest extends TestCase
{
    use RefreshDatabase;

}

注意:在我使用Laravel的情况下要小心:内存数据库,这个函数会删除所有创建的数据

相关问题