Ce que je habituellement ajoute à phpunit.xml
:
<env name="DB_CONNECTION" value="mysql_testing"/>
Puis, en config/database.php
je crée double de mysql
quelque chose de connexion comme ceci:
'mysql_testing' => [
'driver' => 'mysql',
'host' => env('DB_TESTING_HOST', 'localhost'),
'database' => env('DB_TESTING_DATABASE', 'forge'),
'username' => env('DB_TESTING_USERNAME', 'forge'),
'password' => env('DB_TESTING_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
puis dans .env
je définis les paramètres de connexion de test:
#TESTING
DB_TESTING_HOST=127.0.0.1
DB_TESTING_DATABASE=test_database
DB_TESTING_USERNAME=root
DB_TESTING_PASSWORD=pass
Il fonctionne sans aucun problème plus vous n'avez pas besoin de changer quoi que ce soit dans .env
si vous effectuez des tests et de l'application test manuellement sur une même machine/dans le même répertoire
EDIT
Si vous avez ce genre de situation , probablement modifier plusieurs modèles ne sont pas la meilleure façon, mais si vous souhaitez utiliser même base de données quelle que soit la connexion défini, vous pouvez faire quelque chose comme ça:
en supposant que vous avez défini l'environnement pour tester ce qui peut être fait en utilisant:
<env name="APP_ENV" value="testing"/>
dans votre fichier phpunit.xml
que vous pouvez faire entrer dans votre AppServiceProvider
classe et dans la méthode register
faire quelque chose comme ceci:
if ($this->app->environment('testing')) {
$this->app['config']->set('database.connections.mysql2.database', 'yourcustom testing database');
// ...
$this->app['config']->set('database.connections.mysql15.database', 'yourcustom testing database');
}
Je n'ai pas essayé, mais il devrait fonctionner - il devrait faire que lors de l'exécution teste que vous pouvez définir toutes vos connexions à la même base de données de test (ou à d'autres bases de données si vous le souhaitez)
Ne faites pas cela. Le fichier 'phpunit.xml' vous permet de remplacer toutes les valeurs' .env' lors de l'exécution de tests, via des éléments tels que ' '. Remplacer la variable d'environnement 'DB_CONNECTION' et y avoir. –
ceejayoz