PankovAlxndr
@PankovAlxndr
Fullstack web developer

Как исправить ошибку not close its own output buffers в тестах?

Здравствуйте, стек такой
  1. PHP 8.2
  2. Laravel 10
  3. PEST 2

Пишу такой тест:
test('create new user', function () {
    Storage::fake('avatars');
    $image = UploadedFile::fake()->image('avatar.png');

    expect(1)->toBe(1);
});

Запускаю его, а мне в ответ:
Test code or tested code did not (only) close its own output buffers

те он до expect(1)->toBe(1); даже не доходит.
Поковырялся в ларе, такой метод нашел в
/vendor/laravel/framework/src/Illuminate/Http/Testing/FileFactory.php
, он у меня как раз и запускается:
protected function generateImage($width, $height, $extension)
    {
        return tap(tmpfile(), function ($temp) use ($width, $height, $extension) {
            ob_start();

            $extension = in_array($extension, ['jpeg', 'png', 'gif', 'webp', 'wbmp', 'bmp'])
                ? strtolower($extension)
                : 'jpeg';

            $image = imagecreatetruecolor($width, $height);

            call_user_func("image{$extension}", $image);

            fwrite($temp, ob_get_clean());
        });
    }

Но, как я вижу, там ob_get_clean есть и буфер должен быть закрыт, но что же не так, нагуглил про разные уровни "буферизации", возможно идет конфликт с phpunit в этом плане, но пока не могу разобраться.
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
PankovAlxndr
@PankovAlxndr Автор вопроса
Fullstack web developer
Нужен модель GD для imagecreatetruecolor($width, $height);
поставил его и проблема исчезла
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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