I created a .env.testing file with my credentials, everything the same as .env besides a different table name for the database.
I tried php artisan config:clear
which deletes the cached config file in bootstrap/cache/config.php
and it broke the database connection. If I re-cache the file by running php artisan config:cache
the cached file is back, but without the credentials in the .env.testing file. When I rerun PHPUnit, it connects to the wrong DB, the DB name that is stored in .env not .env.testing.
Is this for real? Did the latest Laravel release break test environments?
Here is what the docs read: (found here: https://laravel.com/docs/5.8/testing)
"You are free to define other testing environment configuration values as necessary. The testing environment variables can be configured in the phpunit.xml file, but make sure to clear your configuration cache using the config:clear Artisan command before running your tests!
Also, you may create a .env.testing file in the root of your project. This file will override the .env file when running PHPUnit tests or executing Artisan commands with the --env=testing option."
UPDATE
I finally was able to override the database that is stated in the .env by adding the database override in the phpunit.xml file; the .env.testing is still not working. The docs are misleading at the least.