laravel dusk 报错
描述
在 laradock
中运行 php artisan dusk
报错,报错信息如下:
laradock@4f4b69f7abe6:/var/www/XXX$ php artisan dusk
PHPUnit 9.4.3 by Sebastian Bergmann and contributors.
EE 2 / 2 (100%)
Time: 00:05.895, Memory: 22.00 MB
There were 2 errors:
1) Tests\Browser\ExampleTest::testBasicExample
Facebook\WebDriver\Exception\UnknownErrorException: unknown error: Chrome failed to start: crashed.
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
/var/www/XXX/vendor/php-webdriver/webdriver/lib/Exception/WebDriverException.php:139
/var/www/XXX/vendor/php-webdriver/webdriver/lib/Remote/HttpCommandExecutor.php:371
/var/www/XXX/vendor/php-webdriver/webdriver/lib/Remote/RemoteWebDriver.php:136
/var/www/XXX/tests/DuskTestCase.php:45
/var/www/XXX/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:218
/var/www/XXX/vendor/laravel/framework/src/Illuminate/Support/helpers.php:234
/var/www/XXX/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:219
/var/www/XXX/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:97
/var/www/XXX/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:65
/var/www/XXX/tests/Browser/ExampleTest.php:21
2) Tests\Browser\LoginTest::testExample
Facebook\WebDriver\Exception\UnknownErrorException: unknown error: Chrome failed to start: crashed.
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
/var/www/XXX/vendor/php-webdriver/webdriver/lib/Exception/WebDriverException.php:139
/var/www/XXX/vendor/php-webdriver/webdriver/lib/Remote/HttpCommandExecutor.php:371
/var/www/XXX/vendor/php-webdriver/webdriver/lib/Remote/RemoteWebDriver.php:136
/var/www/XXX/tests/DuskTestCase.php:45
/var/www/XXX/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:218
/var/www/XXX/vendor/laravel/framework/src/Illuminate/Support/helpers.php:234
/var/www/XXX/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:219
/var/www/XXX/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:97
/var/www/XXX/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:65
/var/www/XXX/tests/Browser/LoginTest.php:21
ERRORS!
Tests: 2, Assertions: 0, Errors: 2.
环境
laradock: * master
分支php: 7.4
chromedriver:
(开启INSTALL_DUSK_DEPS
自动安装)laradock@4f4b69f7abe6:/var/www$ /usr/local/bin/chromedriver -v ChromeDriver 2.42.591071 (0b695ff80972cc1a65a5cd643186d2ae582cd4ac)
google-chrome-stable:
(开启INSTALL_DUSK_DEPS
自动安装)laradock@4f4b69f7abe6:/var/www$ google-chrome-stable --version Google Chrome 87.0.4280.66
google-chrome:
(不知道啥时候安装的)laradock@4f4b69f7abe6:/var/www$ google-chrome --version Google Chrome 87.0.4280.66
Laravel Dusk:
"laravel/dusk": "^6.9"
laravel: 8.x
(使用laravel new
安装的laravel
项目)
复现说明
- 安装
docker
下载laradock
修改.env
,创建镜像,启动容器,.env
文件如下:➜ laradock git:(master) ✗ diff .env env-example 8c8 < APP_CODE_PATH_HOST=/data/php --- > APP_CODE_PATH_HOST=../ 42c42 < PHP_VERSION=7.4 --- > PHP_VERSION=7.3 76c76 < CHANGE_SOURCE=true --- > CHANGE_SOURCE=false 89c89 < SHELL_OH_MY_ZSH=true --- > SHELL_OH_MY_ZSH=false 102,103c102,103 < WORKSPACE_COMPOSER_REPO_PACKAGIST=https://mirrors.aliyun.com/composer/ < WORKSPACE_NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node --- > WORKSPACE_COMPOSER_REPO_PACKAGIST= > WORKSPACE_NVM_NODEJS_ORG_MIRROR= 106c106 < WORKSPACE_NPM_REGISTRY=https://registry.npm.taobao.org --- > WORKSPACE_NPM_REGISTRY= 119c119 < WORKSPACE_INSTALL_XDEBUG=true --- > WORKSPACE_INSTALL_XDEBUG=false 140,141c140,141 < WORKSPACE_INSTALL_LARAVEL_ENVOY=true < WORKSPACE_INSTALL_LARAVEL_INSTALLER=true --- > WORKSPACE_INSTALL_LARAVEL_ENVOY=false > WORKSPACE_INSTALL_LARAVEL_INSTALLER=false 154c154 < WORKSPACE_INSTALL_DUSK_DEPS=true --- > WORKSPACE_INSTALL_DUSK_DEPS=false 205c205 < PHP_FPM_INSTALL_XDEBUG=true --- > PHP_FPM_INSTALL_XDEBUG=false 226c226 < PHP_FPM_INSTALL_SWOOLE=true --- > PHP_FPM_INSTALL_SWOOLE=false 230c230 < PHP_FPM_INSTALL_PCNTL=true --- > PHP_FPM_INSTALL_PCNTL=false 258,259c258,259 < PHP_WORKER_INSTALL_GD=true < PHP_WORKER_INSTALL_IMAGEMAGICK=true --- > PHP_WORKER_INSTALL_GD=false > PHP_WORKER_INSTALL_IMAGEMAGICK=false 271c271 < PHP_WORKER_INSTALL_SWOOLE=true --- > PHP_WORKER_INSTALL_SWOOLE=false
- 创建
laravel
项目,按照laravel dusk
安装文档进行安装
无效的尝试
- 修改
tests/DuskTestCase.php
$options = (new ChromeOptions)->addArguments([ '--disable-gpu', '--headless', '--window-size=1920,1080', '--no-sandbox', '--disable-dev-shm-usage' ]);
composer dump-autoload 不确定 试试
一气之下在本地安装了
lnmp
测试成功,本人觉得应该是网络通讯问题导致的,在workspace
容器中手动启动chromedriver
,在容器外可以访问到9515
端口,在容器内链接不到,怀疑就是这个问题导致。只是个方向,目前没时间搞了,大家有兴趣的试试。