laravel 测试中的错误:SQLSTATE[HY000]:一般错误:1 没有这样的表:用户

kav*_*.hd 0 mysql phpunit unit-testing laravel

当我在 laravel 中使用 PHPUnit 并在运行 PHPUnit 后将工厂添加到我自己的测试类时,控制台中会出现以下错误:

 SQLSTATE[HY000]: General error: 1 no such table: users 
Run Code Online (Sandbox Code Playgroud)

我的测试类方法:

public function testExistSomeTextsInIndexPage()
{
    $users= factory(User::class)->create();
    $this->get('/')->assertSee($users->name);
     
}
Run Code Online (Sandbox Code Playgroud)

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

Eri*_*eer 5

您应该将其Illuminate\Foundation\Testing\DatabaseMigrations作为特征包括在内。有关于此的文档

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

class ExampleTest extends TestCase
{
    use DatabaseMigrations;
}
Run Code Online (Sandbox Code Playgroud)

注意:设置正确的数据库凭据。如果您使用现有数据库的凭据,它将覆盖该数据库。我建议您使用带有 SQLite 的数据库,请参阅此处的in-memory示例