Edited at

Modern Testing in PHP な Codeception を触ってみた1

More than 5 years have passed since last update.


はじめに

恐れ入りますがコード量が多いため、記事を2個に分けて書きました。


  • 1個目は「インストールから Acceptance Test を動かすところまで」

  • 2個目は「Acceptance Test のサンプルと Codeception の導入状況や、情報など」

この記事は Modern Testing in PHP な Codeception を触ってみた1 になります。


動作環境


  • Mac OS X 10.8.4

  • Homebrew から Apache, PHP などをインストール済


Codeception の Requirements


  • PHP 5.3

  • CURL enabled


Codeception って何?

自分もまだ触ったばっかりなので詳しくはわかりませんが特徴としては以下


  • Multiple backends, easily changed Selenium, PhpBrowser, ZombieJS

  • Elements matched by name, CSS, XPath

  • Data Cleanup after each run

  • Integrate with Symfony2, Zend Framework, Kohana, etc.

  • Continious Integration systems like Jenkins or Bamboo

  • Natively executes PHPUnit tests

  • BDD-style scenario-driven tests

  • WebServices testing via REST,SOAP,XML-RPC

  • Generates HTML, XML, TAP, JSON reports

  • Simple Fixtures

  • Database and Doctrine ORM helpers

  • CodeCoverage and Remote CodeCoverage

詳細は http://codeception.com/ で。


Codeception のインストールとテスト環境の初期化

http://codeception.com/install から

phar アーカイブをダウンロードしてプロジェクトルートに置いて、以下のコマンドを実行

php codecept.phar bootstrap

tests/ にいろいろファイルやディレクトリが作られます。


ディレクトリ構造

codecept.phar

codeception.yml #グローバルな設定はここに書く
test/
_data/
dump.sql
_helpers/
CodeHelper.php #モジュールを独自拡張したい場合に使う。以下の2つも同様
TestHelper.php
WebHelper.php
_log/
acceptance/
_bootstrap.php #受け入れテスト実行前に共通で何かしたい場合はここに書く
WebGuy.php
acceptance.suite.yml #受け入れテストの設定はここに書く
functional/
_bootstrap.php #機能テスト実行前に共通で何かしたい場合はここに書く
TestGuy.php
functional.suite.yml #機能テストの設定はここに書く
unit/
_bootstrap.php #ユニットテスト実行前に共通で何かしたい場合はここに書く
CodeGuy.php
unit.suite.yml #ユニットテストの設定はここに書く


とりあえず Acceptance Test を動かしてみる

以下のコマンドで Acceptance Test のひな形みたいなものが作れます。

php codecept.phar generate:cept acceptance Example

各コマンドは php codecept.phar

http://codeception.com/docs/reference/commands で詳細が確認できます。

acceptance.suite.yml の設定

といっても、まだよくわからないので PhpBrowser の url を変更しただけにしました。

class_name: WebGuy

modules:
enabled:
- PhpBrowser
- WebHelper
config:
PhpBrowser:
url: 'http://localhost/hoge/'

Apache などを start しておいて、以下のコマンドを実行

php codecept.phar run

なんか functional, unit も含めて実行してしまう感じなので以下のようにして実行

php codecept.phar run acceptance

これで acceptance のみ実行されるようです。

詳しくは http://codeception.com/docs/reference/commands

Modern Testing in PHP な Codeception を触ってみた2 は以下になります。

http://qiita.com/livejam_db/items/448b7fef0280e148f0db