导语
在本地安装 Laravel Dusk 一直失败,查了文档才发现在 laradock 中并不是只需要 composer require
就可以的,还有其他配置。下面记录一下。
配置 laradock
- 切换到
laradock
目录中,将workspace
容器先暂停docker-compose sotp workspace
- 修改
.env
文件中的WORKSPACE_INSTALL_LARAVEL_INSTALLER
和WORKSPACE_INSTALL_DUSK_DEPS
,将配置值改为true
- 重新搭建
workspace
容器docker-compose build workspace
- 成功之后启动
docker-compose up -d workspace
安装 Laravel Dusk
- 进入到
workspace
容器中docker-compose exec workspace bash
,并且切换到项目目录中 - 使用
composer require --dev laravel/dusk
安装 Laravel Dusk - 执行
php artisan dusk:install
- 在
tests/DuskTestCase.php
文件中,修改driver
方法,添加—-no-sandbox
参数,如下
protected function driver()
{$options = (new ChromeOptions)->addArguments([
'—disable-gpu',
'—headless',
'—window-size=1920,1080',
'—no-sandbox',// 添加这行
]);
return RemoteWebDriver::create('http://localhost:9515', DesiredCapabilities::chrome()->setCapability(ChromeOptions::CAPABILITY, $options)
);
}
- 添加一个配置文件,
cp .env .env.dusk.local
,将APP_URL
修改为http://localhost:8000
- 执行
php artisan serve —-quiet &
- 最后可以使用 Laravel Dusk 进行测试了
php artisan dusk
结语
其实在 workspace
中有很多 alias 可是使用,为了便于理解,都是用了原命令。
关于 Laravel Dusk 的使用,可以参考这个教程,其中不止关于测试的部分,其他部分很好。
参考资料:在 Laravel 中基于 Dusk 实现浏览器自动化测试快速入门、laradock 文档。