#laravel #gitlab #gitlab-ci #laravel-dusk
#laravel #gitlab ( гитлаб ) #gitlab-ci #laravel-dusk #gitlab
Вопрос:
итак, я пытался настроить Laravel с помощью Gitlab, теперь все работает нормально, однако, когда скрипт пытается запустить тесты моего браузера, я получаю следующую ошибку
Curl error thrown for http POST to /session with params: {"capabilities":{"firstMatch":[{"browserName":"chrome","goog:chromeOptions":{"binary":"","args":["--disable-gpu","--headless","--window-size=1920,1080"]}}]},"desiredCapabilities":{"browserName":"chrome","platform":"ANY","chromeOptions":{"binary":"","args":["--disable-gpu","--headless","--window-size=1920,1080"]}}}
Failed to connect to localhost port 9515: Connection refused
at vendor/php-webdriver/webdriver/lib/Remote/HttpCommandExecutor.php:331
вот мой .gitlab-ci.yml
файл
before_script:
- apt-get update
- apt-get install -qq git curl libmcrypt-dev libjpeg-dev libpng-dev libfreetype6-dev libbz2-dev
- apt-get install zlib1g-dev libzip-dev
- apt-get clean
- curl --silent --show-error https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
- docker-php-ext-install pdo_mysql zip
- cp .env.test .env
image: php:7.3
services:
- mysql:5.7
variables:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: homestead
MYSQL_USER: homestead
MYSQL_PASSWORD: secret
DB_HOST: mysql
DB_USERNAME: root
stages:
- test
browser_test:
stage: test
script:
- echo "Starting pest tests"
- composer install
- php artisan dusk:install
- php artisan dusk:chrome-driver
- php artisan key:generate
- php artisan migrate
- php artisan serve amp; vendor/bin/pest
и это мой .env.test
файл
APP_ENV=local
APP_DEBUG=true
APP_KEY=SomeRandomString
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=mysql
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
из того, что я смог найти, это то, что chrome-driver не запущен,
Спасибо за ваш ответ.
Ответ №1:
проблема решается путем добавления --no-sandbox
в настройки драйвера Chrome
в tests/DuskTestCase.php
добавьте это
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
)
);
}