2017-02-04 12 views
21

Как говорится в названии, я проделал чистую установку Laravel 5.4 и последней версии Homestead (1.0.1). Однако, когда я бегу простой тест Dusk случай я получаю следующее сообщение об ошибке:Ошибка Laravel Dusk: Не удалось подключиться к порту localhost 9515: Соединение отклонено

Failed to connect to localhost port 9515: Connection refused

Любой знает, как бороться с этим? Я попытался изменить порт на что-то еще, например 8888, но безрезультатно.

EDIT: Я был в состоянии копать немного глубже и обнаружил, что chromedriver исполняемые не было на самом деле исполняемым файлом (chmod). Теперь, когда я исправил, что я получаю эту ошибку, когда я вручную пытаюсь ее запустить.

./chromedriver: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory

+0

Для меня было достаточно выполнить chmod исполняемый файл в 'vendor/laravel/dusk/bin/chromedriver-linux'. Существует также версия macodes 'chromedriver-linux' и windows' chromedriver-win.exe'. – Tim

+0

вот обсуждение этого вопроса. https://github.com/laravel/dusk/issues/10 –

+0

Вы запускаете команду 'php artisan dusk' через SSH на вашем сервере или в Homestead? вам нужно «chrome browser» для запуска проверки браузера, вместо этого попробуйте выполнить команду в ОС хоста. –

ответ

0

На Ubuntu Linux 16.04, я получил эту работу:

Установка Chromium & зависимостей для обезглавленной тестирования

sudo apt-get -y install chromium-browser xvfb gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable imagemagick x11-apps

создать пользовательский DuskCommand

который расширяет оригинал, с этим методом handle:

public function handle() 
{ 
    $xvfb = (new ProcessBuilder()) 
     ->setTimeout(null) 
     ->setPrefix('/usr/bin/Xvfb') 
     ->setArguments(['-ac', ':0', '-screen', '0', '1280x1024x16']) 
     ->getProcess(); 

    $xvfb->start(); 

    try { 
     parent::handle(); 
    } finally { 
     $xvfb->stop(); 
    } 

    return; 
} 

Это запустит Xvfb для обезглавленной тестировании перед выполнением тестов и остановить процесс после тестирования завершается.

Редактировать: И убедитесь, что vendor/laravel/dusk/bin/chromedriver-linux является исполняемым.