laravel phpunit - почему тесты обновляют живую базу данных - PullRequest
0 голосов
/ 04 октября 2018

У меня есть проект 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>

Кто-нибудь имеет какие-либо идеи относительно того, что это может быть или где проверить дальше?

1 Ответ

0 голосов
/ 04 октября 2018

Убедитесь, что phpstorm использует правильный файл конфигурации phpunit:

Настройки> Языки и фреймворки> PHP> Тестовые фреймворки> Ваша конфигурация> Runner.

Default configuration file должен иметь правильный путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...