@Skreiphoff

Почему при отправке запроса через Guzzle, контроллер использует значения из основной базы данных, а не той, что указана в phpunit.xml?

Я тестирую API и сталкиваюсь с этой проблемой, когда выполняю следующий код
$client = new Client([
       'base_uri' => 'http://localhost'
    ]);

    $response = $client->post('/support', [
        'form_params' => [
            'host' => Shop::first()->host,
            'key' => md5(getenv('KEY_API_APP'))
        ]
    ]);
    echo "\r\n".$response->getBody();
    $this->assertEquals(200, $response->getStatusCode());

Метод который лежит по этому адресу
if(md5(getenv('KEY_API_APP'))== $request->key) {
        if (!is_null(Shop::where('host', '=', $request->host)->first())) {
            $shop = Shop::select(config('support.shop'))->get();

            return $this->success($shop);
        } else {
            return $this->respond('Failed','Error, application host name is not correct');
        }
    }
    else {
        return $this->respond('Failed','Error, application key is not correct');

В ходе проверки выявил, что метод использует базу которая прописана в .env, а не ту которая в phpunit.xml, с чем это может быть связано?
Мой phpunit.xml
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="./vendor/phpunit/phpunit/phpunit.xsd"
         bootstrap="vendor/autoload.php"
         colors="true">
    <testsuites>
        <testsuite name="Application Test Suite">
            <directory suffix="Test.php">./tests</directory>
        </testsuite>
    </testsuites>
    <filter>
        <whitelist processUncoveredFilesFromWhitelist="true">
            <directory suffix=".php">./app</directory>
        </whitelist>
    </filter>
    <php>
        <env name="APP_ENV" value="testing"/>
        <env name="CACHE_DRIVER" value="array"/>
        <env name="QUEUE_CONNECTION" value="sync"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="DB_CONNECTION" value="sqlite"/>
        <env name="KEY_API_APP" value="3c6e0b8a9c15224a8228b9a98ca1531d"/>
        <server name="DB_DATABASE" value=":memory:"/>
    </php>
</phpunit>
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
@galliard
Потому что к phpunit.xml нужно указывать при запуске phpunit
php vendor\phpunit\phpunit\phpunit --configuration phpunit.xml tests\Unit
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы