【问题标题】:Doctrine\DBAL\Driver\PDOException: could not find driver when trying to use a factory in my unit testsDoctrine\DBAL\Driver\PDOException: 在我的单元测试中尝试使用工厂时找不到驱动程序
【发布时间】:2019-04-17 20:46:44
【问题描述】:

只要我不尝试模拟数据库对象,我的单元测试就可以正常工作。我创建了一个工厂,并试图在我的一个测试中使用它。但是,我不断收到a could not find driver error。我查了几个堆栈答案,我的 php 版本是 7.1,所以不太确定是什么导致了错误。

这是我的测试课。

<?php
/**
 * Created by PhpStorm.
 */

namespace Tests\Unit\Helper\Results;

use Jobscan\Helper\Results\FormatHelper;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Jobscan\Models\Document\Cv;
use Tests\TestCase;

class FormatHelperTest extends TestCase
{
    public function testFindingsForUploadedDocxResume_whenFontTypeIsNotStandard_resultFontTypeShowsNegativeResult()
    {
        $cv = factory(Cv::class)->create([
            'content' => "Testing Test test",
        ]);
        dd($cv);



 }
}

在我的 phpunit 测试中

<env name="DB_CONNECTION" value="test_db"/>
<env name="DB_DATABASE" value=":memory:"/>

这是我不断收到的错误

 Caused by
 Doctrine\DBAL\Driver\PDOException: could not find driver

database.php 文件

 // This database is ephemeral and used for testing purposes.
        'test_db' => [
            'driver'   => 'sqlite',
            'database' => ':memory:',
            'prefix'   => '',
        ],

【问题讨论】:

  • 可以直接使用模型吗?没有工厂?
  • @adam nope,我尝试直接使用模型。
  • 你能出示你的config/database.php文件吗?
  • @SteveChamaillard,我刚刚添加了 config/database.php。
  • @SteveChamaillard,谢谢,但现在我得到一个 PHP Startup: Unable to load dynamic library 'pdo_sqlite' 错误。

标签: laravel driver factory phpunit


【解决方案1】:

您的错误意味着它没有在您的 PHP 库中找到 sqlite 驱动程序,这意味着扩展程序未正确加载。 查看您的 php.ini 文件(通过执行以下操作找到其路径:php --ini)并找到:

extension=pdo_sqlite

如果写成:

;extension=pdo_sqlite,那么你应该删除;。

【讨论】:

【解决方案2】:

在你的测试中定义一个 setUp 方法:

public function setUp()
{
    parent::setUp();
}

【讨论】:

  • 我添加了 setUp 方法,但仍然遇到同样的错误。
猜你喜欢
  • 1970-01-01
  • 2021-10-11
  • 2016-01-05
  • 1970-01-01
  • 2021-02-28
  • 2016-02-22
  • 1970-01-01
  • 2014-06-08
  • 2019-04-04
相关资源
最近更新 更多