Help us understand the problem. What is going on with this article?

LaradockでLaravel Duskを動かすメモ

More than 3 years have passed since last update.

【Laravel 5.4】Laravel Duskによるブラウザテストの作成方法

上の記事を参考にさせてもらいながらDuskを動かそうとしましたが、
Laradockの環境ではうまく動作しなかったので、対処法をメモします。

前提

  • composer を使って laravel/dusk をインストール済み。
  • ServiceProviderDusk を登録済み。
  • php artisan dusk:install を実行済み

Laradockで実行した場合

laravel_workspace コンテナに入り、 php artisan dusk を実行すると、
以下のようなエラーに襲われます。

Facebook\WebDriver\Exception\WebDriverCurlException: 
Curl error thrown for http POST to /session with params: 
{"desiredCapabilities":{"browserName":"chrome","platform":"ANY"}}
・
・
・

そのため、WebDriverを設定し直す必要があります。

対処法

まず、 dusk用の環境変数の設定ファイル、.env.dusk.localを準備します。
これは必須ではないですが、環境変数はテスト用に分けたほうがよいでしょう。

.env.dusk.local.env からコピってきてOKです。
ただし、 APP_URL のみ、 http://nginx に設定します。

.env.dusk.local
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://nginx
・
・
・

そして、 tests\DuskTestCase.php 内のdriver()メソッドを以下のように変更します。

tests\DuskTestCase.php
    protected function driver()
    {
        return RemoteWebDriver::create(
            'http://selenium:4444/wd/hub', DesiredCapabilities::chrome()
        );
    }

これで、アプリケーション側の準備はOKです。

最後に、 laradock_selenium のコンテナが必要になりますので、
docker-composer で立ち上げておきます。

docker-compose build selenium

実行します。

$ php artisan dusk
PHPUnit 5.7.9 by Sebastian Bergmann and contributors.

..                                                                  2 / 2 (100%)

Time: 31.01 seconds, Memory: 16.00MB

OK (2 tests, 2 assertions)

できたーー( ´ ▽ ` )ノ

uenoryo
Web系の開発をメインでやってますヾ( ゚д゚)人( ゚д゚)ノ゙
https://github.com/uenoryo/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away