0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravel sail のテスト用DBの設定方法

Last updated at Posted at 2022-06-18

概要

Laravel sail での開発環境で、PHPUnitをテスト用DBで実行するための手順を記載する。
(自分の備忘録用の記事になります)

前提

  • Docker実行環境が整っていること
  • Laravelの実行環境が整っていること
  • Mysqlが使用できる環境であること

環境

  • php 8.1.4
  • Laravel 8.83.16
  • Mysql 8.0.28

手順

  1. Laravel, sailをインストールする。

    $ composer create-project laravel/laravel:^8.0 sail-test
    $ cd sail-test
    $ composer require laravel/sail --dev
    $ php artisan sail:install
    
     Which services would you like to install? [mysql]:
      [0] mysql
      [1] pgsql
      [2] mariadb
      [3] redis
      [4] memcached
      [5] meilisearch
      [6] minio
      [7] mailhog
      [8] selenium
     > 0,7
    
    Sail scaffolding installed successfully.
    
  2. aliasを登録します。

    alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'
    
  3. 各コンテナを起動させる。

    $ sail up -d
    
  4. sail コマンドでsanctum、breezeをインストールする。
    (Breezeをインストールすると、Breezeに関するDBを使用したテストも用意できるのでBreezeをインストールしてます。)

    $ sail composer require laravel/breeze --dev
    $ sail artisan breeze:install
    
  5. .env.testingファイルを作成すること

    $ cp .env.example .env.testing
    
  6. .env.testingファイルの中身を修正する

    DB_CONNECTION=mysql
    DB_HOST=mysql // docker-compose.ymlのmysqlのホスト名にする
    DB_PORT=3306
    DB_DATABASE=testing // test用のテーブルを記載
    DB_USERNAME=sail // 修正箇所
    DB_PASSWORD=password // 修正箇所
    
    デフォルトのMysqlのテーブル(sail ユーザでログインした場合) 以下のコマンドでmysqlに接続する。
     mysql -h 127.0.0.1 -u sail -P 3306 -p
     
     mysql> show databases;
     +--------------------+
     | Database           |
     +--------------------+
     | information_schema |
     | laravel            |
     | testing            |
     +--------------------+
     3 rows in set (0.01 sec)
    
  7. testing用のAPP_KEYを生成する。

    $ sail artisan key:generate --env=testing
    
  8. 環境変数をクリアする。

    $ sail artisan config:clear
    

結果

これでテスト用DBを使用してsail testを実行できるようになりました!

$ sail test

<省略>

PASS  Tests\Feature\ExampleTest
  ✓ example

  Tests:  17 passed
  Time:   2.51s
0
3
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
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?