ローカルのマシンでテストコードを書くためにやった手順のメモです。
環境
Windows10
事前準備
PHPとJavaを用意します。今回はXAMPPのPHPを使います。
XAMPP
以下からダウンロードします。
https://www.apachefriends.org/download.html
Version 5.6.15 32bit(64bitに対応している)
システム環境変数の編集
Path=C:\xampp\php
コマンドプロンプトでのバージョン確認
php -v
Java
以下からダウンロードします。
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Java SE Development Kit Windows x64
システム環境変数の編集
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_74
Path=%JAVA_HOME%\bin
コマンドプロンプトでのバージョン確認
java -version
Composerのインストール
ComposerというのはPHPのパッケージ依存管理ツールです。
まずコマンドプロンプトでPHPのフォルダに移動します。
cd C:\xampp\php
以下をコマンドプロンプトで実行するとインストールされます。
php -r "readfile('https://getcomposer.org/installer');" > composer-setup.php
php -r "if (hash('SHA384', file_get_contents('composer-setup.php')) === 'fd26ce67e3b237fffd5e5544b45b0d92c41a4afe3e3f778e942e43ce6be197b9cdc7c251dcde6e2a52297ea269370680') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); }"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Composerの起動が楽になるようにBATファイルを作っておきます。
コマンドプロンプトで以下を実行します。
echo @php "%~dp0composer.phar" %*>composer.bat
するとコマンドプロンプトでcomposerと打つと起動するようになりました。
composer
コマンドプロンプトで以下のようにシンボリックリンクを作っておくと、bashでも実行できるようになります。
Git Bashでコミットしている場合はBashの操作だけで済むのでこちらのほうが便利です。
mkdir ~/bin
ln -s /c/xampp/php/composer.phar ~/bin/composer
以上でComposerのインストールは完了です。
Selenium Standalone Server
以下からダウンロードします。
http://www.seleniumhq.org/download/
Selenium Standalone Server 2.52.0
bashでホームディレクトリにselenium-serverというディレクトリを作って
ダウンロードしたselenium-server.jarをそこに移動させます。
mkdir selenium-server
mv ~/Download/selenium-server.jar selenium-server/
Selenium Serverの起動が楽になるようにBATファイルを作っておきます。
echo java -jar "%~dp0selenium-server-standalone-2.52.0.jar" %*>selenium-server.bat
これでコマンドプロンプトでselenium-serverと打てば起動するようになりました。
cd ~/selenium-server
selenium-server
以上でSelenium Serverの準備完了です。
PHPUnit
以下のようなcomposer.jsonを任意のプロジェクトファイル配下に用意します。
{
"require-dev": {
"phpunit/phpunit": "5.0.*",
"phpunit/phpunit-selenium": "2.0.*"
}
}
コマンドプロンプトでそのプロジェクトファイルに移動して、
以下を実行するとプロジェクトフォルダ配下にvendorフォルダが生成され、必要なもの一式がダウンロードされます。
※Git管理している場合はvendorを.gitignoreに追加します。
composer update
これで準備完了です。
テストファイルの作成
プロジェクトフォルダ配下に以下のようなテストファイルを作成します。
<?php
require_once "vendor/autoload.php";
class WebTest extends PHPUnit_Extensions_Selenium2TestCase {
public function setUp()
{
$this->setBrowser('firefox');
$this->setBrowserUrl('https://github.com/');
}
public function testHello()
{
$this->url('/');
$this->byLinkText('Sign in')->click();
$id = $this->byId('login_field');
$id->value('1234');
$password = $this->byId('password');
$password->value('abc');
$password->submit();
$filePointer = fopen('hoge.png', 'w');
fwrite($filePointer, $this->currentScreenshot());
fclose($filePointer);
}
}
テストの実行
作成したテストをBashで実行します。
vendor/bin/phpunit WebTest
これでテスト結果が表示されるはずです。