0
0

More than 5 years have passed since last update.

Laravel duskで別ホストのブラウザを使う方法

Last updated at Posted at 2019-02-26

開発環境をhomestead等で構築した場合、duskテストをheadlessでしか実行できない。
そこで、ホストOS(それ以外のホストでも同じ)のブラウザを使うことでブラウザ動作を目視できるようにする。

記事は下記構成を想定
・開発環境: homestead(VirtualBox)
・Laravelバージョン: Laravel5.5 + dusk2.0
・ホストOS: Windows10

ホストOS側

Laravelプロジェクト内のchromedriver実行ファイルをホストOSの任意の場所にコピー

win,mac,linux用があるので環境にあわせてチョイスしてください。
vendor/laravel/dusk/bin/chromedriver-win.exe

chromedriverを実行

接続元IPアドレスのホワイトリストを設定する必要があるが、面倒なので全許可にしておく。
./chromedriver-win.exe --whitelisted-ips 0.0.0.0

ファイアウォール等の設定

外部からの接続を阻害する要因は全てパスしておくこと。

その他

Chromeブラウザがインストールされていること。

Laravelプロジェクト側

DuskTestCase.phpを編集
optionsのheadless設定はコメントアウトします。
10.0.2.2:9515がホストOSのIP:ポートです。

tests/DuskTestCase.php
protected function driver()
{
    $options = (new ChromeOptions)->addArguments([
        // '--disable-gpu',
        // '--headless'
    ]);

    return RemoteWebDriver::create(
        'http://10.0.2.2:9515', DesiredCapabilities::chrome()->setCapability(
            ChromeOptions::CAPABILITY, $options
        )
    );
}

duskテスト実行

いつもどおりduskコマンドでテストを実行します。
ホストOS側のブラウザが起動して自動操作が始まります。
php artisan dusk test/Browser/HogeTest.php

0
0
0

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
0
0