PHPUnitとSeleniumを連携させて、サーバーやブラウザ上で動作テストができるようにする。資料はPHPUnitの公式サイトにあるので、それに従ってmac上にPHPUnit+Seleniumの環境を構築して動かす。
(2016/3/7時点の最新の情報に修正しました)
情報源
- PHPUnit マニュアル – 第13章 PHPUnit と Selenium (リンクが切れていたので修正2016/3/7)
概要
PHPUnitはSeleniumと連携することが可能。Selenium 2.x Serverを使う。アクセスするには Selenium RC APIか、一部実装されているWebDriver APIを使う。
インストールの概要
作業手順を以下にまとめる。
Composerのインストール
- Composerを利用するので、ComposerをMacにインストール - tanaka's Programming Memoを参照してComposerをインストールする。
Selenium Serverのインストール
- 公式サイトの Downloads を参照して、Selenium Serverをダウンロード
- ダウンロードした selenium-server-standalone-x.xx.x.jarを、 /usr/local/bin フォルダーに移動させる
mv ~/downloads/selenium-server-standalone-* /usr/local/bin
- 利用する時は以下のように起動する。例は、今回試した2.52.0を起動するコマンド
java -jar /usr/local/bin/selenium-server-standalone-2.52.0.jar
動作確認
PHPUnit マニュアル – 第13章 PHPUnit と Selenium の例17.1を元にしたテストコードで動作確認する。
- プロジェクトフォルダー直下に新しいフォルダーを作成して、 test という名前にする
- testフォルダー内に新しいファイルを作成して、 WebTest.php という名前にする
- 以下のコードを入力する。URLとアサート内容を変更している
<?php class WebTest extends PHPUnit_Extensions_Selenium2TestCase { protected function setUp() { $this->setBrowser('firefox'); $this->setBrowserUrl('http://www.google.co.jp/'); } public function testTitle() { $this->url('http://www.google.co.jp/'); $this->assertEquals('Google', $this->title()); } } ?>
- Seleniumサーバーをまだ起動していなければ、新規でターミナルを開いて、以下を入力して起動する
java -jar /usr/local/bin/selenium-server-standalone-2.52.0.jar
- もう一つのターミナルのプロジェクトフォルダー内から、以下を入力してテストを実行する
./vendor/bin/phpunit test
以上でテストがOKになれば成功。失敗したり、エラーが発生した場合は、どこか作業にミスがあるか、Selenium ServerやPHPUnit、phpunit-seleniumのバージョンが古くなっているか、Googleのトップページのタイトルが変更されているので、状況に合わせて情報を更新する。