使用laravel测试上传图像

使用laravel测试上传图像,laravel,testing,upload,Laravel,Testing,Upload,我正在测试一个控制器,它可以用Laravel和插件上传和调整图像大小 这是控制器: $file = request() ->file('file') ->store('images/avatar', 'public'); Image::make(storage_path('app/public/' . $file)) ->resize(200, 200, function ($constraint) { $constraint->

我正在测试一个控制器,它可以用Laravel和插件上传和调整图像大小

这是控制器:

$file = request()
    ->file('file')
    ->store('images/avatar', 'public');

Image::make(storage_path('app/public/' . $file))
    ->resize(200, 200, function ($constraint) {
        $constraint->aspectRatio();
        $constraint->upsize();
    })
    ->save();
上传效果很好,但在测试中,文件被上传到
storage/framework/testing/disks/public/images/avatar/
,而在dev中,文件被发送到
storage/app/public/images/avatar/

结果是运行时,
Image::make(存储路径('app/public/'.$file))
上的测试失败


有人知道我如何修复它吗?

您尝试访问此路径中的图像
存储路径('app/public/'.$file)
。确保它存在。在dev中,它工作并且此文件存在,但是在web和测试中执行时,
store()
方法选择不同的文件夹。您可以尝试包括绝对路径,而不是存储路径()可能将.env属性(如“APP_env”和“APP_DEBUG”)更改为“product”和“false”会起作用。您尝试访问此路径中的映像
存储路径('APP/public/'.$file)
。请确保它存在。在dev中,它可以工作并且此文件存在,但是在web和测试中执行时,
store()
方法选择不同的文件夹。您可以尝试包括绝对路径,而不是存储路径()。可能会将.env属性(如“APP\u env”和“APP\u DEBUG”)更改为“product”和“false”可以工作。