はじめに
今回は、私が日々のE2Eテストで活用している ts.properties ファイルの使い方についてご紹介します。特に、GaugeとPlaywrightを使ったテストで環境ごとの設定をどのように管理しているか、実際のプロジェクト構成を基に解説します。
なぜts.propertiesが必要なのか?
E2Eテストを行う際、異なる環境や設定を使い分けることがよくあります。たとえば、開発用のローカル環境やステージング、CI(継続的インテグレーション)、本番環境などです。それぞれで異なるURLやユーザー情報を使用したい場合、設定ファイルを一元管理することが重要です。
ts.properties は、こうした設定をまとめて管理できる便利なファイルです。テストコードを変更することなく、環境設定やユーザー情報を柔軟に切り替えられるようになります。
ts.properties を使った環境ごとの設定構成
まず、ts.properties の中身をご紹介します。
弊社では、以下のように環境ごとに ts.properties を分けて管理しています。
env
├── ci
│ └── ts.properties
├── default
│ ├── default.properties
│ └── ts.properties
├── local
│ └── ts.properties
├── prd
│ └── ts.properties
└── stg
└── ts.properties
このように環境ごとにディレクトリを作成し、それぞれの ts.properties ファイルに対応する設定を記述しています。これにより、テスト実行時に特定の環境の設定を簡単に切り替えられます。
各ts.propertiesの役割と内容
例えば、env/ci/ts.properties には、CI環境でのテスト実行に必要な設定を記述します。
PLAYWRIGHT_HEADLESS=true
PLAYWRIGHT_SLOW_MO=0
HITOTSU_ASSET_URL=https://ci-xxxx
HITOTSU_LINK_URL=https://ci-yyyy
USER_NAME_ADMIN=ci_admin
USER_PASSWORD=ci_password
一方、ローカル開発用の env/local/ts.properties は、デバッグしやすいようにPlaywrightをヘッドフルモード(ブラウザを表示するモード)で実行する設定にしています。
PLAYWRIGHT_HEADLESS=false
PLAYWRIGHT_SLOW_MO=500
HITOTSU_ASSET_URL=http://localhost:3000
HITOTSU_LINK_URL=http://localhost:3001
USER_NAME_HP_ADMIN=local_admin
USER_PASSWORD=local_password
このように設定ファイルを環境ごとに用意しておくことで、テスト実行時に簡単に設定を切り替えることができます。テストの対象環境に応じて env フォルダ内の適切な ts.properties を参照するように設定するだけです。
具体的な活用例
例えば、ローカル環境でテストを実行したい場合、以下のようにコマンドを実行します。
gauge run --env local specs/1_login.spec
このコマンドを実行することで、env/local/ts.properties が読み込まれ、ローカル環境用の設定でテストが実行されます。同様に、CI環境や他の環境でテストを実行したい場合は、--env オプションを使って環境を指定することで、対応する ts.properties が適用されます。
まとめ
ts.properties を環境ごとに管理することで、GaugeとPlaywrightによるE2Eテストの柔軟性と保守性が大幅に向上します。設定を分けることで、テストの実行環境に合わせた最適な設定が可能になり、効率的なテスト運用が実現できます。ぜひ、皆さんのプロジェクトにも取り入れてみてください!!