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 文件如下:
    代码已被折叠,点此展开
  • 创建 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 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 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年前