Laravel 5 : Use different database for testing and local
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.
For Laravel 5.5, the proper way to do this is create a testing environment file called .env.testing
. Here, you can define your testing environment, including the database you want to use for testing...
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test DB
DB_USERNAME=test DB user
DB_PASSWORD=test DB password
Then run this command...
php artisan config:cache --env=testing
This will configure the cache to the .env.testing file parameters.
Here is a link to the documentation.