Laravel 6 PHPUnit 测试 - 找不到驱动程序(SQL:PRAGMA foreign_keys = ON;)

Posted

技术标签:

【中文标题】Laravel 6 PHPUnit 测试 - 找不到驱动程序(SQL:PRAGMA foreign_keys = ON;)【英文标题】:Laravel 6 PHPUnit Testing - could not find driver (SQL: PRAGMA foreign_keys = ON;) 【发布时间】:2020-05-21 09:25:45 【问题描述】:

我开始在 Laravel 中编写测试。我的应用程序工作正常,我可以登录、运行迁移,但是当我尝试测试登录时,我收到以下错误:

找不到驱动程序(SQL:PRAGMA foreign_keys = ON;)

我的数据库在 Postgres,我的测试如下:

/** @test */
public function user_login_ok()

    $response = $this->json('POST', '/api/login', [
       'email' => 'test@test.com',
       'password' => 'test'
    ]);

    $this->assertEquals(200, $response->getStatusCode());

我不担心(目前)我的测试是否足够好甚至正确,而是要解决这个错误。

【问题讨论】:

是否有专门用于测试的环境文件,或者phpunit.xml php 部分中是否有数据库的一些配置选项?如果是,这些设置可能会尝试使用您尚未设置的数据库连接。 非常感谢! 没问题。我为将来的问题访问者添加了带有评论内容的答案。随意接受。 【参考方案1】:

您可能需要在 phpunit 使用的 php.ini 文件中启用 pdo_sqlite 的扩展。

【讨论】:

【参考方案2】:

您是否有特定于测试环境的.env 文件? 您的phpunit.xml 文件中有php 部分环境配置吗?

如果其中任何一个配置了您的数据库连接,则应检查它们以确保它们配置正确。

【讨论】:

以上是关于Laravel 6 PHPUnit 测试 - 找不到驱动程序(SQL:PRAGMA foreign_keys = ON;)的主要内容,如果未能解决你的问题,请参考以下文章

laravel 4 无法让 phpunit 测试工作

使用 phpunit 进行 Laravel 测试

PHPUnit类“Error”不扩展PHPUnit_Framework_TestCase

Laravel 路由上的 PHPunit 测试总是返回 404

在 Laravel 中设置 PHPUnit 测试

Laravel 项目运行 phpunit 测试结果只显示点号