У меня есть проект laravel, в котором есть проблема, которая означает, что всякий раз, когда я запускаю тест, база данных db обновляется (я использую use RefreshDatabase;
), а не база данных test-db.
Itдействительно сбивает с толку, так как все выглядит хорошо - я не вижу, что пропустил.
Когда я запускаю dd(app()->environment());
, он показывает «тестирование», поэтому я ожидаю, что база данных db-test будет обновлена.
Я использую phpstorm, но не думаю, что это проблема.
Вот (enitized) файл env:
DB_HOST=127.0.0.1
DB_DATABASE=db
DB_USERNAME=root
DB_PASSWORD=
TEST_DB_HOST=127.0.0.1
TEST_DB_DATABASE=test-db
TEST_DB_USERNAME=root
TEST_DB_PASSWORD=
(sanitized)config / database.php:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'db'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
// other settings
],
'test-mysql' => [
'driver' => 'mysql',
'host' => env('TEST_DB_HOST', 'localhost'),
'port' => env('TEST_DB_PORT', '3306'),
'database' => env('TEST_DB_DATABASE', 'test-db'),
'username' => env('TEST_DB_USERNAME', 'root'),
'password' => env('TEST_DB_PASSWORD', ''),
// other settings
],
И (sanitized) phpunit.xml:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false">
<testsuites>
<testsuite name="Application Test Suite">
<directory>./tests/</directory>
</testsuite>
</testsuites>
<php>
<env name="APP_ENV" value="testing"/>
<env name="APP_URL" value="http://app.localhost"/>
<env name="DB_CONNECTION" value="test-mysql"/>
<env name="MAIL_DRIVER" value="log"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
</php>
</phpunit>
Кто-нибудь имеет какие-либо идеи относительно того, что это может быть или где проверить дальше?