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'
    ]);
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2
da_house

composer dump-autoload 不确定 试试

4年前 评论
zhushaolong (楼主) 4年前

一气之下在本地安装了 lnmp 测试成功,本人觉得应该是网络通讯问题导致的,在 workspace 容器中手动启动 chromedriver ,在容器外可以访问到 9515 端口,在容器内链接不到,怀疑就是这个问题导致。只是个方向,目前没时间搞了,大家有兴趣的试试。

➜  admin_api git:(master) ✗ php artisan dusk
PHPUnit 9.4.3 by Sebastian Bergmann and contributors.

.                                                                   1 / 1 (100%)

Time: 00:00.681, Memory: 20.00 MB

OK (1 test, 1 assertion)
4年前 评论
zhushaolong (作者) (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!