1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravel Duskでブラウザテストを行う

Last updated at Posted at 2024-05-06

開発環境

  • Windows 10 Pro(64bit)
  • PHP 8.1.9
  • Laravel 10.10
  • Laravel Dusk 8.2

Laravel Duskとは、ブラウザテストを自動化するためのLaravelのパッケージです。今回は、インストールしてから、簡単なテストをするまで記事に書きます。

1.Google Chromeの最新版をダウンロードして、バージョンを確認してください。確認方法として、僕の開発環境では、C:\Program Files (x86)\Google\Chrome\Application ディレクトリ内の124.0.6367.119ディレクトリがありますので、これがバージョンとなります。

2.以下のコマンドをプロジェクトのルートディレクトリで実行

composer require laravel/dusk --dev

3.ChromeDriverをインストールする際にcURLでHTTPS通信を行うため、cacert.pemをダウンロードし、Cドライブ直下に、pemディレクトリを作り、その中へ入れておきます。

4.php.iniを開いて、その中のcurl.cainfoの行のコメントを外し、上記のpemファイルのあるディレクトリを絶対パスで指定します。

curl.cainfo=C:\pem\cacert.pem

5.以下のコマンドをプロジェクトのルートディレクトリで実行

php artisan dusk:install

6.以下のコマンドをプロジェクトのルートディレクトリで実行

php artisan dusk:make FirstTest

7..envファイル内のAPP_URLに、テスト用のホストを実行時のサーバーのポート番号付きで指定

.env
APP_URL=http://localhost:8000/

8.以下のコマンドでChromeDriverを実行。1.で調べたバージョンを指定します。

php artisan dusk:chrome-driver 124.0.6367.119

9./tests/Browserディレクトリ内にFirstTest.phpが作成されているので開いて、以下のようにコードを作成し保存

FirstTest.php
<?php

namespace Tests\Browser;

use Illuminate\Foundation\Testing\DatabaseMigrations;
use Laravel\Dusk\Browser;
use Tests\DuskTestCase;

class FirstTest extends DuskTestCase
{
    /**
     * A Dusk test example.
     */
    public function testExample(): void
    {
        $this->browse(function (Browser $browser) {
            $browser->visit('/');
            // トップページ内のbodyタグ内に指定の文章があるかチェック
            $browser->assertSee('Hello Laravel Dusk.');
        });
    }
}

10.組み込みサーバーを以下のコマンドで実行

php artisan serve

11.組み込みサーバーを実行しつつ、以下のコマンドで、Laravel Duskを実行

php artisan dusk

参考リンク

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?