使用 Dusk 测试附加文件 - 通过 Tinker 工作,但不能从测试中工作

Kop*_*pty 4 php laravel laravel-dusk

我有一个文件上传器,我为其编写了以下测试:

$browser->visit('/product/professional-photo-prints')
        ->attach('photo', __DIR__.'/storage/app/public/testing/test_upload.jpg');
Run Code Online (Sandbox Code Playgroud)

那不上传文件。也没有错误。

但是,当我这样做时:

$browser->visit('/product/professional-photo-prints')
        ->tinker();
Run Code Online (Sandbox Code Playgroud)

一旦进入 Tinker 启动的终端,当我输入与测试中使用的完全相同的文件上传命令时:

$browser->attach('photo', __DIR__.'/storage/app/public/testing/test_upload.jpg');
Run Code Online (Sandbox Code Playgroud)

...有用。我可以看到我的 Chrome 实例上传文件等。

我一生都无法弄清楚从测试本身运行的命令或从 Tinker 运行的命令之间有什么区别。

任何帮助将不胜感激。谢谢。

PS我正在使用 Laravel 5.5 和 Dusk 2.0

Ser*_*nko 7

DIR魔术常量指的是正在执行的文件的父文件夹。

->attach('photo', __DIR__.'/storage/app/public/testing/test_upload.jpg');
Run Code Online (Sandbox Code Playgroud)

当然这个路径没有找到文件。你应该尝试这个:

->attach('photo', storage_path('app/public/testing/test_upload.jpg'));
Run Code Online (Sandbox Code Playgroud)