{ 2010.12.26 }

CakePHP Clickinit Pluginが意外に便利

    はてなブックマーク - CakePHP Clickinit Pluginが意外に便利
    このエントリーをはてなブックマークに追加

    Fusic Advent Calendar発起人の小山です。
    最近はPortisheadばかり聴いています。
    さて、Fusic Advent Calendarもクリスマスバージョンが無事終わり(自分は見事に当たりませんでした)、
    エクストラステージ「日本式アドベントカレンダー」に突入しております。
    「も〜うい〜くつね〜る〜と〜」のあれです。

    ブラウザから確認

    Webシステムを作成していると、やっぱりブラウザから挙動をテストをしたりしますよね。
    その時に、便利なのがSeleniumです。
    簡単な挙動確認ならば、Selenium IDEで操作の記録をすることで、何度も同じ操作の確認を行うことができます。

    では、ユーザの新規登録はどうしますか?

    さらにメールアドレスを登録して、確認メールが来るようなテストはどうしていますか?

    一度登録してしまうともう一度そのメールアドレスは登録できなかったりしますよね。

    ブラウザから初期化

    方法はいろいろあると思います。
    データベースを直接操作してもいいですし、そもそもSeleniumを使っているならば、Selenium RCなどを利用する際にデータベースを初期化してもいいかもしれません。
    ただ、ブラウザからちょっと簡単に操作したいと思ってCakePHPのPluginを作成してみたので紹介したいと思います。

    Clickinit Plugin

    Clickinit Pluginはブラウザ側からサーバサイドで処理を実行するためのプラグインです。

    github.com/k1LoW/clickinit

    以下のようにAppContollerの$componentsに登録するだけで、まずは設置完了です。

    次に、実際にサーバサイドで行う処理を書いたスクリプトをapp/vendor/shells/に設置します。
    その時に、ファイル名の先頭には数字を付与してください。これは実行すべきファイルの判別と、実行順序を判定するために利用しています。
    (例:00-initdb.php, 01-clearcache.php)

    あとはページの左上に表示されたタブをクリックするだけで、すべてのスクリプトを実行することができます。
    スクリプトの実行はrequire()を利用しているので、CakePHPの定数やクラスなども使えます。

    たったこれだけのプラグインです。
    Clickinitはサーバのスクリプトを実行するスイッチ的なものです。
    たったこれだけですが、意外に便利です。
    例えば、データベースの初期化だけでなく、CakePHPのキャッシュを一旦削除して挙動を確認するときにも便利です。

    ブラウザから操作ができるので、開発時のSelenium IDEのテストケースに追加してもいいかもしれません。

    注意

    Clickinit Pluginはあくまで開発時に使うプラグインです
    特にサーバ内スクリプトを動かすものになりますので、デプロイ時には外すようにしましょう

    まとめ

    ブラウザからサーバ内スクリプトを実行するClickinitを紹介しました。

    ブラウザから初期化ができるだけで、意外に効率もあがります。
    もし良かったら皆さんも試してみてください。

    Comments are closed.