dimanche 23 février 2020

How to set up SQLite database for feature testing in Laravel

I'm trying to create some feature test in Laravel 6.0 but I can't seem to get the test database to work. I'm testing on Windows 10 using PHP 7.4.2

When using the use RefreshDatabase; trait I get the following error: Illuminate\Database\QueryException: could not find driver (SQL: create table users ...

In php.ini I've enabled extension=pdo_sqlite

In my phpunit.xml I have the following configuration:

    ....
    <php>
        <server name="APP_ENV" value="testing"/>
        <server name="BCRYPT_ROUNDS" value="4"/>
        <server name="CACHE_DRIVER" value="array"/>
        <server name="DB_CONNECTION" value="sqlite"/>
        <server name="DB_DATABASE" value=":memory:"/>
        <server name="MAIL_DRIVER" value="array"/>
        <server name="QUEUE_CONNECTION" value="sync"/>
        <server name="SESSION_DRIVER" value="array"/>
    </php>
</phpunit>

My ExampleTest.php looks like this:

<?php declare(strict_types=1);

namespace Tests\Feature;

use Tests\TestCase;
use Domain\User\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;

class ExampleTest extends TestCase {

    use RefreshDatabase;

    public function testCreateNewUser() {
        $user = new User();
        $user->save();
    }
}

I'm a bit clueless on what more I need to configure. Some help would be very welcome!

Aucun commentaire:

Enregistrer un commentaire