我刚刚发现了 Laravel Dusk,我很高兴在我的项目中使用它。然而,它似乎无法让它发挥作用。我按照 Laravel 文档安装了 Dusk。当我在终端中运行 php artisan dusk 时,我得到了
[Symfony\Component\Process\Exception\RuntimeException]
TTY mode is not supported on Windows platform.
我发现这个( https://github.com/laravel/dusk/pull/13/files )应该可以修复它,但我仍然收到错误。
此外,我尝试按照此处接受的答案( https://laracasts.com/discuss/channels/testing/dusk-via-phpstorm )通过 PhpStorm 运行 Dusk 测试,但我收到 Class config does not exit
错误。很多人说这是由 .env 文件中的空格引起的,但这不是我的问题。
谁能帮我弄清楚 Laravel Dusk 在我的设置中发生了什么?我的 Laravel 项目是 5.4,我使用的是 Laravel Dusk 1.0,PhpStorm 是 2017.2.1
最佳答案
您可以自行将chromedriver安装到windows中,尽量不要使用laravel dusk自带的版本。请记住,您的 chromedriver 版本需要与当前安装的 Chrome 版本相匹配,当 Chrome 更新时,您需要再次手动更新/重新安装 chromedriver。希望这种情况不会经常发生,当有更新时,您可以从使用最新版本中受益,我觉得这真的很好:) Download it here.
安装chromedriver后,您需要从命令行启动它(只需在下载/安装目录chromedriver
中发出命令)或将其添加为服务(我这样做不喜欢,因为我想控制哪个服务在 9515 端口上运行)。
最后你需要在 DuskTestCase.php 中注释掉 //static::startChromeDriver();
,它会尝试启动包含 chromedriver 的 laravel dusk,因为在这种情况下,你已经在运行一个.
再次运行黄昏测试,一切都应该正常工作。
我不知道你的系统设置是什么,但我在带有 Laravel 5.5、dusk 2.0 的 Windows 10 上使用此解决方法,当 chrome 更新时,这仍然会导致问题。
顺便说一句。只是提一下。这也适用于使用 docker 的 CI 工作流程。您可以阅读更多相关信息here关于laravel - 运行 Laravel Dusk 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46416870/