APP_ENV не распознается в Windows Git Bash с помощью PHPUnit - PullRequest
0 голосов
/ 05 июня 2019

С Symfony 4.2, Windows и Git Bash,

Когда я запускаю эту команду, все в порядке , моя база данных bublemeet_test обновляется:

APP_ENV=test php bin/console doctrine:schema:update --force

В моей папке test/ есть файл bootstrap.php:

<?php

require __DIR__.'/../config/bootstrap.php';

if (isset($_ENV['APP_ENV'])) {
    passthru(sprintf(
        'APP_ENV=%s php "%s/../bin/console" cache:clear --no-warmup',
        $_ENV['APP_ENV'],
        __DIR__
    ));
}

Но когда я запускаю эту команду:

./bin/phpunit

У меня есть эта ошибка:

'APP_ENV' n’est pas разведка и командование интерном Вы внешне, программа не исполняемая, вы не командиры.

Почему APP_ENV не распознается при выполнении команды ./bin/phpunit, но распознается при обновлении базы данных?

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

В Windows passthru использует cmd, а не bash.

Вы можете изменить свой код, используя

<?php

passthru(sprintf(
        'bash -c "APP_ENV=%s php \\"%s/../bin/console\\" cache:clear --no-warmup"',
        $_ENV['APP_ENV'],
        __DIR__
    ));
0 голосов
/ 05 июня 2019

В соответствии с документами вам необходимо установить URL в .env.test, как показано ниже:

# .env.test
DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name_test"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...