Codeceptionクイックスタート・ガイド(日本語訳)


Codeceptionを使ってみたくなったので、翻訳しつつ動作確認してみた。
※ガイドだけでわかりにくいところは追記した。(赤字部分)

翻訳元:
Codeception Quickstart Guide

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)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です