laravel 测试出错:SQLSTATE[HY000]:一般错误:1 没有这样的表:用户
Posted
技术标签:
【中文标题】laravel 测试出错:SQLSTATE[HY000]:一般错误:1 没有这样的表:用户【英文标题】:Error in laravel testing : SQLSTATE[HY000]: General error: 1 no such table: users 【发布时间】:2021-09-19 14:17:04 【问题描述】:当我在 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);
这个工厂代码在我项目的其他部分正常工作,只是在测试类中显示错误
【问题讨论】:
您在测试设置中迁移了吗? 测试的设置到底在哪里?我只是迁移主数据库项目 在根文件夹,你有phpunit的配置文件,设置它使用与项目相同的数据库。通常,对于测试,您使用临时数据库,因此您可以测试所有内容(创建、修改和删除)。 【参考方案1】:您应该包含Illuminate\Foundation\Testing\DatabaseMigrations
作为特征。关于这个有documentation。
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Tests\TestCase;
class ExampleTest extends TestCase
use DatabaseMigrations;
注意:设置正确的数据库凭据。如果您使用现有数据库的凭据,它将覆盖数据库。我建议您使用带有 SQLite 的 in-memory
DB,参见示例 here
【讨论】:
以上是关于laravel 测试出错:SQLSTATE[HY000]:一般错误:1 没有这样的表:用户的主要内容,如果未能解决你的问题,请参考以下文章
Laravel:SQLSTATE [HY000] [2002] 连接被拒绝
在 laravel 控制台中执行 php artisan migrate 时出错
SQLSTATE[HY000] [1049] 未知数据库 'laravel'
SQLSTATE [23502]:非空违规:7 错误 - laravel
Laravel:SQLSTATE [28000] [1045] 用户 'homestead'@'localhost' 的访问被拒绝