У меня есть проект laravel, у которого есть проблема, что означает, что всякий раз, когда я запускаю тест, обновляется база данных db (я использую use RefreshDatabase;), а не базу данных test-db.
Это действительно сбивает с толку, потому что все выглядит нормально - я не вижу, что я пропустил.
Когда я запускаю dd(app()->environment());, он показывает «тестирование», поэтому я ожидаю, что база данных db-test обновится.
Я использую phpstorm, но не думаю, что это проблема.
Вот (очищенный) файл 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=
(очищено) 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
],
И (очищенный) 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>
Есть ли у кого-нибудь идеи, что это может быть или где проверить дальше?
@Remul пробовал, не сработало
Если вы запускаете тесты из phpstorm, убедитесь, что phpstorm использует правильный файл конфигурации phpunit. Для меня это: «Настройки> Языки и фреймворки> PHP> Тестовые фреймворки> ваша конфигурация> Test Runner». «Файл конфигурации по умолчанию» должен иметь правильный путь.
@Remul, да, вот и все! Я добавил путь к своему файлу phpunit.xml, и теперь он отлично работает! Спасибо! Если вы хотите добавить это в качестве ответа, я приму его как правильный.






Убедитесь, что phpstorm использует правильный файл конфигурации phpunit:
Settings > Languages & Frameworks > PHP > Test Frameworks > your config > Test Runner.
Default configuration file должен иметь правильный путь.
Я добавил путь к своему файлу phpunit.xml, и он сработал - у коллеги была такая же проблема с тем же исправлением
Вроде все правильно, вы пытались очистить конфиг с помощью
php artisan config:clear