PHP用のテストフレームワーク Codeception を使ってみます。Laravelのテストで .env を切り替える方法を調べると、片っ端から Codeception が使われていたので導入しようと思います。
公式ページ
ダウンロードと設定
基本的な手順はこちらに載っています。→ Quick Start Codeception
利用したいプロジェクトフォルダーで以下を実行します。
composer require "codeception/codeception" alias codecept='./vendor/bin/codecept'
インストール
以下で、テストに必要な環境を生成します。
codecept bootstrap
設定ファイルの codeception.yml や tests フォルダーが出来上がります。
テストの作成
最初の受け入れテスト(acceptance test)を作成しましょう。受け入れテストは、ユーザーがページを訪れる操作をエミュレートします。
codecept generate:cept acceptance Welcome
Codeceptionのシナリオテストのことを、 Cept と呼びます。
ここまで出来たら、最初のテストが実行できます。以下でテストを走らせましょう。
codecept run
最初に作成されるテストには、チェック項目がないのでテストは成功します。
テストファイルの編集
tests/acceptance/WelcomeCept.php に出力されたテストファイルを以下のように編集しましょう。
<?php $I = new AcceptanceTester($scenario); $I->wantTo('ページにアクセスできるか確かめます'); $I->amOnPage('/'); $I->see('tanaka\'s Programming Memo');
上書き保存をしたら、テストを動かしてみましょう。
codecept run
これは失敗します。アクセス先のURLを設定していないからです。
テストの設定ファイルを作成する
tests/acceptance.suite.yml を開いて、以下のように編集して、 URL を設定します。
class_name: AcceptanceTester modules: enabled: - PhpBrowser: url: http://am1tanaka.hatenablog.com/ - \Helper\Acceptance
保存をしてテストをしましょう。
codecept run
今度は成功します。
あとは、動かしたい環境に応じた使い方を調べていきましょう。