Laravel 5 : Use Different Database For Testing And Local

- 1 answer

How does one change database for development and testing on local system without editing the .env file each time?

I have found it quite inconvenient to practice TDD because of this.

Is it possible for a Laravel application to differentiate between normal development and testing so that it can choose the appropriate database?



Create a testing database configuration in Laravel

Edit the config\database.php file and add a testing - array into the connections array:

'connections' => [
    'testing' => [
        'driver' => env('DB_TEST_DRIVER'),
        // more details on your testing database

Then add the necessary variables to your .env-file.

Edit PHPUnit configuration

Open your phpunit.xml-file and add the following within your <php>-tag:

<env name="DB_CONNECTION" value="testing"/>

Now PHPUnit will run with the tests on the database you defined in the testing - array.