Modern PHP Testing Framework “Codeception” を使って簡単なブラウザテストをする

画面が正しく表示されているのか、を確認したいときにSeleniumを使うのは大変だなーと調べていたらCodeceptionを見つけました

Codeception PHP Testing Framework is designed to work just out of the box. This means its installation requires minimal steps and no external dependencies preinstalled (except PHP, of course). Only one configuration step should be taken and you are ready to test your web application from an eye of actual user.

だそうです。

導入は簡単、Quick Start Codeceptionの通りにするだけです

1. Download

Quick Startには codecept.phar を直接取って来る方法が載っていますが、他との連携も考えるとcomposerを使っておくほうがいいんじゃないかと思います

2. Install

codeception.yml と tests ディレクトリーが作られます
ここでtestsディレクトリーの名前を変えたりは出来ないようです。。(あとからはたぶん出来ます)

3. Create Test

acceptanceというのが、ブラウザテストの事です

4. Write Basic Test

tests/acceptance/WelcomeCept.phpが作成されているので、このファイルを編集します

/ のパスに Home という文字があるかどうか、をテストするという内容になります。
日本語も試しましたが普通に大丈夫でした

他にも

など、文字を見るだけで何をしているのかがわかってわかりやすいですね

5. Configure Acceptance Tests

テストを実行するための設定ファイルがあるのでこれを修正します

tests/acceptance.suite.yml

{YOUR APP’S URL} をlocalhost:8000にしておけば、ビルトインサーバーでテストが出来ます

引数によって挙動を変えたい場合などはenvを使うことも出来ます

envはrunの時に足せば有効に

6. Run!

あとは実行するだけ、簡単!

その他コマンドの説明はリファレンスがそこそこしっかり書かれています
Console Commands – Codeception – Documentation

ここからはおまけ
せっかくテストを書いたのでTravis CIでも実行されるようにしましょう

7. Travis CI

.travis.ymlを編集

PHP5.3だと動かないので、5.3の場合は実行しない

export DISPLAY=:99.0
sh -e /etc/init.d/xvfb start
をして、ブラウザからのテストを受け付けるように

php -S localhost:8080 -t public_html/ &
ビルトインサーバーをバックグラウンドで実行

ハマったポイント
ローカルでは、codecept.pharを使い、Travis CIではcomposerを使ったらエラーが出てbuildでエラー

runでもエラーが出てテストが動かず意味がわからん感じになりました。

ハマったポイント②
tiger-seo/PhpBuiltinServer
ビルトインサーバーを使うなら、これを使いなよ、と書いてあったので試したけど静的なものは表示できるが、phpは動いていないという不可思議な状態に。。
使い方が悪いんだろうか?

というわけで、Codeceptionを使った簡単ブラウザテストでした
CodeceptionはSeleniumを使ったテストも出来るし、PHPUnitを使ったUnitテストも出来るので使いこなすと便利そうです

スポンサーリンク

シェアする

フォローする

コメントを残す

トップへ戻る