Laravel PHPUnit загружает файл .env.testing

У меня есть некоторые проблемы с загрузкой Laravel правильного файла .env для моих тестовых случаев.
Я использую PHPUnit со следующим набором переменных в phpunit.xml:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"backupStaticAttributes="false"bootstrap="bootstrap/autoload.php"colors="true"convertErrorsToExceptions="true"convertNoticesToExceptions="true"convertWarningsToExceptions="true"processIsolation="false"stopOnFailure="false">
<testsuites>
<testsuite name="Application Test Suite">
<directory suffix="Test.php">./tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./app</directory>
<exclude>
<file>./app/Http/routes.php</file>
</exclude>
</whitelist>
</filter>
<php>
<env name="APP_ENV" value="testing"/>
<env name="DB_CONNECTION" value="sqlite"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
</php>
</phpunit>

В моем файле .env.testing у меня есть:

APP_ENV=testing
DB_CONNECTION=sqlite

И я установил его соединение в config / database.php:

'sqlite' => [
'driver' => 'sqlite',
'database' => ':memory:',
'prefix' => ''
]

Он просто не загружает файл .env.testing. Если я сделаю это в моем TestCase.php:

dd(env('APP_ENV'));

Я все еще получаю «развитие» из моего файла .env

Я также пытался использовать:

$app->loadEnvironmentFrom('.env.testing');

Вроде предложено в ветке Вот

У кого-нибудь есть идеи, что может быть не так?

2

Решение

В соответствии с документация для 5.2 Вы должны установить вас env переменные в вас phpunit.xml,

Таким образом, чтобы установить соединение с БД на sqlite, вы должны добавить:

<env name="DB_CONNECTION" value="sqlite"/>
<env name="DB_DATABASE" value=":memory:"/>

внутри <php></php> теги.

Надеюсь это поможет!

0

Другие решения

Моя проблема была довольно похожа. Файл env .env.testing вообще не читался.
Я попытался поместить var_dump повсюду в мой тестовый файл, все было в порядке, но даже var_dump (env («APP_NAME»)) был нулевым.

Я решил набрать «php artisan config: clear», и все вернулось к норме.
Не уверен, что я сделал, но у меня это сработало 🙂

0

По вопросам рекламы [email protected]