CakeBehat
https://github.com/oppara/CakeBehat
もろもろ動かなかったのでとりあえずフォーク
インストールとか
直の場合
% cd /path/to/cake_root/app/Plugin % git clone https://github.com/oppara/CakeBehat.git
submoduleの場合
% cd /path/to/cake_root % git submodule add https://github.com/oppara/CakeBehat.git app/Plugin/CakeBehat % git submodule update --init app/Plugin/CakeBehat
composer, behatとかのインストール
% cd /path/to/cake_root/app/Plugin/CakeBehat % curl http://getcomposer.org/installer | php % php composer.phar install
app/Config/bootstrap.php に以下を追加
CakePlugin::loadAll();
確認(CakeBehatのメニューが表示されること)
% cd /path/to/cake_root/app % ./Console/cake Welcome to CakePHP v2.4.1 Console --------------------------------------------------------------- App : app Path: /srv/httpd/cake.local/app/ --------------------------------------------------------------- Current Paths: -app: app -working: /srv/httpd/cake.local/app -root: /srv/httpd/cake.local -core: /srv/httpd/cake.local/lib Changing Paths: Your working path should be the same as your application path. To change your path use the '-app' param. Example: -app relative/path/to/myapp or -app /absolute/path/to/myapp Available Shells: [CakeBehat] bdd, init
実行
初期化(behat.ymlとfeaturesディレクトリのコピー)
% cd /path/to/cake_root/app % ./Console/cake CakeBehat.init Welcome to CakePHP v2.4.1 Console --------------------------------------------------------------- App : app Path: /srv/httpd/cake.local/app/ --------------------------------------------------------------- copy /srv/httpd/cake.local/app/Plugin/CakeBehat/features to Cake app/Test... copy behat.yml to App/Config...
実行
% cd /path/to/cake_root/app % ./Console/cake CakeBehat.bdd Welcome to CakePHP v2.4.1 Console --------------------------------------------------------------- App : app Path: /srv/httpd/cake.local/app/ --------------------------------------------------------------- シナリオがありません ステップがありません 0m0.034s
フィーチャ、ステップ例
# language: ja フィーチャ: ログイン シナリオ: ログインとログアウトが出来ること 前提"/login" を表示している ならば PHPエラーが表示されていないこと かつ "ログイン" と表示されていること かつ "email" フィールドに "admin@example.com" と入力する かつ "password" フィールドに "password" と入力する もし "ログイン" ボタンをクリックする ならば PHPエラーが表示されていないこと かつ "HOME" と表示されていること もし "ログアウト" のリンク先へ移動する ならば PHPエラーが表示されていないこと かつ "ログイン" と表示されていること
<?php $steps->Given('/^PHPエラーが表示されていないこと$/', function($world) { return array( new Behat\Behat\Context\Step\Then('"Warning" と表示されていないこと'), new Behat\Behat\Context\Step\Then('"Notice" と表示されていないこと') ); });