Codeceptionを使ってみたくなったので、翻訳しつつ動作確認してみた。
※ガイドだけでわかりにくいところは追記した。(赤字部分)
翻訳元:
Codeception Quickstart Guide
Contents
Codeceptionクイックスタート・ガイド
PHP Testing Frameworkはすぐに使えるように設計されています。 つまり、インストールに必要なのは最小限の手順だけで、外部依存関係はあらかじめインストールされています。(もちろんPHPは例外です)。 ただ1つの設定が行われれば、実際のユーザーの目からWebアプリケーションをテストする準備が整います。
必要条件: PHP5.3, CURLが有効であること
ダウンロード
Composerからインストール
$ composer require "codeception/codeception" // ./vendor/bin/codecept
$ alias codecept='./vendor/bin/codecept'
※./vendor/bin/codeceptにできる実行ファイルをcodeceptとしてエイリアス登録する。
PHARでローカルにインストール
$ wget http://codeception.com/codecept.phar
$ wget http://codeception.com/php54/codecept.phar // PHP 5.4 and 5.5
※ダウンロードURLはオリジナルのクイックスタート・ガイドにリンクが有る
$ alias codecept='codecept.phar'
PHARで全体にインストール
sudo curl -LsS http://codeception.com/codecept.phar -o /usr/local/bin/codecept
sudo chmod a+x /usr/local/bin/codecept
$ codecept
インストール
codecept bootstrap
を実行すると codeception.yml file と tests ディレクトリが作成される。
テストの作成
最初の受け入れテストを作成する。
受け入れテストは実際のユーザがサイトを訪れることをエミュレートする。
codecept generate:cept acceptance Welcome
CodeceptionのシナリオテストはCeptsと呼ばれる。
基本的なテストを書く
最初のテストを書く。tests/acceptance/WelcomeCept.phpを作成する。
<?php
$I = new AcceptanceTester($scenario);
$I->wantTo('ensure that frontpage works');
$I->amOnPage('/');
$I->see('Home');
?>
このコードはフロントページにHomeという語があるかをチェックする。
受け入れテストを設定する
開発サーバが稼働していることを確認してください。
アプリケーションの URLをtests/acceptance.suite.yml に書く。
class_name: AcceptanceTester
modules:
enabled:
- PhpBrowser:
url: {YOUR APP'S URL}
- \Helper\Acceptance
実行
Codeceptionは’run’コマンドで実行される。
codecept run
このコマンドはWelcomeテストをPhpBrowserで実行します。
これはHTMLページのコンテンツをチェックしたり、
リンクをクリック、フォームに入力、そしてPOSTやGETで送信するPHPスクリプトです。
ブラウザを必要とするより複雑なテストにはWebDriverモジュールを備えたSeleniumを使います。
すべてが正しく行われ、そしてあなたのアプリケーションのフロントページに”Home”というてテキストが有ればアウトプットはこのようになる。
Acceptance Tests (1) -------------------------------
✓ WelcomeCept: Ensure that frontpage works
Functional Tests -----------------------------------
Unit Tests -----------------------------------------
Time: 1 second, Memory: 21.00Mb
OK (1 test, 1 assertions)