7
6

More than 5 years have passed since last update.

Windows10でSeleniumとPHPUnitの環境設定

Last updated at Posted at 2016-02-25

ローカルのマシンでテストコードを書くためにやった手順のメモです。

環境

Windows10

事前準備

PHPとJavaを用意します。今回はXAMPPのPHPを使います。

XAMPP

以下からダウンロードします。
https://www.apachefriends.org/download.html
Version 5.6.15 32bit(64bitに対応している)

システム環境変数の編集
Path=C:\xampp\php

コマンドプロンプトでのバージョン確認

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バージョン確認
java -version

Composerのインストール

ComposerというのはPHPのパッケージ依存管理ツールです。
まずコマンドプロンプトでPHPのフォルダに移動します。

phpフォルダに移動
cd C:\xampp\php

以下をコマンドプロンプトで実行するとインストールされます。

Composerインストール
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ファイルを作っておきます。
コマンドプロンプトで以下を実行します。

BATファイル作成
echo @php "%~dp0composer.phar" %*>composer.bat

するとコマンドプロンプトでcomposerと打つと起動するようになりました。

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をそこに移動させます。

selenium-server.jarの移動
mkdir selenium-server
mv ~/Download/selenium-server.jar selenium-server/

Selenium Serverの起動が楽になるようにBATファイルを作っておきます。

SeleniumServerのBATファイルの作成
echo java -jar "%~dp0selenium-server-standalone-2.52.0.jar" %*>selenium-server.bat

これでコマンドプロンプトでselenium-serverと打てば起動するようになりました。

SeleniumServerの起動
cd ~/selenium-server
selenium-server

以上でSelenium Serverの準備完了です。

PHPUnit

以下のようなcomposer.jsonを任意のプロジェクトファイル配下に用意します。

composer.json
{
  "require-dev": {
    "phpunit/phpunit": "5.0.*",
    "phpunit/phpunit-selenium": "2.0.*"
  }
}

コマンドプロンプトでそのプロジェクトファイルに移動して、
以下を実行するとプロジェクトフォルダ配下にvendorフォルダが生成され、必要なもの一式がダウンロードされます。
※Git管理している場合はvendorを.gitignoreに追加します。

ライブラリのインストール
composer update

これで準備完了です。

テストファイルの作成

プロジェクトフォルダ配下に以下のようなテストファイルを作成します。

WebTest.php
<?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で実行します。

PHPUnit実行
vendor/bin/phpunit WebTest

これでテスト結果が表示されるはずです。

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6