LoginSignup
17

More than 5 years have passed since last update.

LaradockでLaravel Duskを動かすメモ

Posted at

【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)

できたーー( ´ ▽ ` )ノ

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17