Help us understand the problem. What is going on with this article?

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした