---
# System prepended metadata

title: PHP Unit のテスト環境構築手順書
tags: [テスト, php, 手順書]

---

# PHP Unit のテスト環境構築手順書

**関連リンク**

[LN PHP Unit テスト実行方法](/QBO0E_4ARTaaQinDHhSGHQ)
[LN テスト 会議議事録(今後つけていく)](/8HI_KJ_rT-ew0e0ezPFUhw)

## 概要

PHP のテスト用の実行環境の構築手順書を記載

## 手順書

1. テスト用のユーザーDBを作成する

まず、既存で動作済みのユーザーDB「listnavi_user_〇〇」を、「listnavi_user_test」で複製する。

複製したら、一度databaseの全テーブルを削除し、共有しているsqlファイルをインポートしてください。



2. .env.testing ファイルを用意

.env.testing ファイルを作成し、プロジェクトルートディレクトリへ配置

:::info

「USER_DB_CONNECTION=user_test」
辺りをそれぞれテスト用の環境に合わせて修正してください
:::

```
[.env.testing]
APP_NAME=Listnavi
APP_ENV=testing
APP_KEY=base64:jqzdBAgBWVlYDZENIqzu6lFqCsOmfRVZz7btDA+dR2s=
APP_DEBUG=true

APP_URL=http://list-navigator.local

# JTを使用するかどうか(true=使用する、false=使用しない)
# JTが落ちたときに使用してください
AUTH_USE=false

LOG_CHANNEL=stack

# デフォルトの接続先
DB_CONNECTION=user

# マスターDB
MASTER_DB_CONNECTION=master
MASTER_DB_HOST=127.0.0.1
MASTER_DB_PORT=3306
MASTER_DB_DATABASE=listnavi_master
MASTER_DB_USERNAME=listnavi_local
MASTER_DB_PASSWORD=lnpass
MASTER_DB_CHARSET=utf8mb4
MASTER_DB_COLLATION=utf8mb4_unicode_ci

# ユーザーマスターDB
USER_MASTER_DB_CONNECTION=user_master
USER_MASTER_DB_HOST=127.0.0.1
USER_MASTER_DB_PORT=3306
USER_MASTER_DB_DATABASE=listnavi_user_master
USER_MASTER_DB_USERNAME=listnavi_local
USER_MASTER_DB_PASSWORD=lnpass
USER_MASTER_DB_CHARSET=utf8mb4
USER_MASTER_DB_COLLATION=utf8mb4_unicode_ci

# ユーザーDB
# ホストとDB名は動的に変更されるため指定しない
USER_DB_CONNECTION=user
USER_DB_PORT=3306
USER_DB_USERNAME=listnavi_local
USER_DB_PASSWORD=lnpass
USER_DB_CHARSET=utf8mb4
USER_DB_COLLATION=utf8mb4_unicode_ci

# プレディクトDB
# ホストとDB名は動的に変更されるため指定しない
PREDICT_DB_CONNECTION=predict
PREDICT_DB_PORT=3306
PREDICT_DB_DATABASE=predict
PREDICT_DB_USERNAME=listnavi_local
PREDICT_DB_PASSWORD=lnpass
PREDICT_DB_CHARSET=utf8mb4
PREDICT_DB_COLLATION=utf8mb4_unicode_ci

# テスト用DB
USER_DB_CONNECTION=user_test
USER_TEST_DB_HOST=127.0.0.1
USER_DB_PORT=3306
USER_DB_USERNAME=listnavi_local
USER_DB_PASSWORD=lnpass
USER_DB_CHARSET=utf8mb4
USER_DB_COLLATION=utf8mb4_unicode_ci
USER_TEST_DB_DATABASE=listnavi_user_test

# Asterisk
ASTERISK_DB_CONNECTION=asterisk
ASTERISK_DB_HOST=127.0.0.1
ASTERISK_DB_PORT=3306
ASTERISK_DB_DATABASE=asterisk
ASTERISK_DB_USERNAME=listnavi_local
ASTERISK_DB_PASSWORD=lnpass
ASTERISK_DB_CHARSET=utf8mb4
ASTERISK_DB_COLLATION=utf8mb4_unicode_ci

# JudgeNaviDB
JN_DB_CONNECTION=judge_navi
JN_DB_HOST=127.0.0.1
JN_DB_PORT=3306
JN_DB_DATABASE=judge_navi
JN_DB_USERNAME=listnavi_local
JN_DB_PASSWORD=lnpass
JN_DB_CHARSET=utf8mb4
JN_DB_COLLATION=utf8mb4_unicode_ci

# 移行DB
# DB名は設定しない
MIGRATION_DB_CONNECTION=migration
MIGRATION_DB_HOST=127.0.0.1
MIGRATION_DB_PORT=3306
MIGRATION_DB_USERNAME=listnavi_local
MIGRATION_DB_PASSWORD=lnpass
MIGRATION_DB_CHARSET=utf8mb4
MIGRATION_DB_COLLATION=utf8mb4_unicode_ci

# ロールバックDB
# DB名は設定しない
ROLLBACK_DB_CONNECTION=rollback
ROLLBACK_DB_HOST=127.0.0.1
ROLLBACK_DB_PORT=3306
ROLLBACK_DB_USERNAME=listnavi_local
ROLLBACK_DB_PASSWORD=lnpass
ROLLBACK_DB_CHARSET=utf8mb4
ROLLBACK_DB_COLLATION=utf8mb4_unicode_ci

SESSION_DRIVER=memcached
CACHE_DRIVER=memcached
BUILD_VERSION=YYYYMMDD

# 一時的なcsvの保存ディレクトリの絶対パス(未設定の場合プロジェクトのルートに作成)
# TMP_CSV_DIRECTORY=csv
# TMP_CSV_DIRECTORY=/csv

# dev 検証用の .env
# config/glo.php設定情報
# GLO_URL=https://10.0.2.2:8080/api
# RETRY_MAX_TIMES=0
# RETRY_INITIAL_DELAY=2
# GLO_TOKEN=16|Qsy8QiNoJusVZK40UVKs9lGgDTbEFRkpen1nzt3P
# VERIFY_SSLCERTS=false
# ALIAS_NAME=LN

# Chat Work API
CHAT_WORK_API_ROOM_ID=238434469
CHAT_WORK_API_TOKEN=90db4ddf04572be8b480073aca6f7a01

# GLO stg環境!!
GLO_URL=https://glo.scene-live.com/dev/api
RETRY_MAX_TIMES=0
RETRY_INITIAL_DELAY=2
GLO_TOKEN=1|Y3K2vPRamt33463B7ctEvwy4CZ0MAIaejnt0QfZb
VERIFY_SSLCERTS=false
ALIAS_NAME=LN

# # # Chat Work API
CHAT_WORK_API_ROOM_ID=238434469
CHAT_WORK_API_TOKEN=461cb9f1ec40842f0cfa7b2e660ad9fe

# OPのリアルタイム状況ファイルパス
OP_SCREEN_INFO_PATH=/home/tmp/listnavi/operator/screen_information/listnavi_user_development

```


3. テスト環境の設定を行う

作業をローカルで行う場合、事前にvirtual box の仮想環境のターミナルに入って行ってください。


```
$ cd /home/slive/list-navigator
# 新しいenv ファイル用に APP_KEYを作成
$ php artisan key:generate --env=testing
```


5. テストの実行確認

上記正常に実行できていれば、テストの環境構築は済んでいるはずなので、実際にテストを実行し確認する。

```
$ cd /home/slive/list-navigator

# テストの実行(全テスト)
$ vendor/bin/phpunit
```

上記コマンド実行後テストが成功していれば終了です。
お疲れ様でした!:clap:

###### tags: `テスト` `php` `手順書`