PHPUnit-seleniumでiOSdriverを動かす

  • 2
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

「PHPUnitでiOSDriverを動かせるかどうか確認してくださーい!」

と指令があってやってみたものの、まぁ資料が少ないということで、今後私のような人が現れた時にお役に立てればとメモ。
手順として難しいことは無いです、ただ少しばかり注意事項がある程度。そこにハマったんだけどね。

1. iOSDriverダウンロード

下記からDriverをダウンロードする。
http://ios-driver.github.io/ios-driver/?page=home
ダウンロードするのはios-server-standalone-0.6.6-SNAPSHOT.jarとかいうものです。

2.XcodeとJavaをインストール

iOSDriverを動かすにXcodeとJavaが不可欠です。
しかし、古いJavaだと動きません!
そして、新しいXcodeだと動きません!
ややこし!
Javaに関しては、当初1.6.0_65を使っていたのですが動きませんでしたので、急遽1.8.0_31を投入しました。
Xcodeは、6を入れていたのを5に入れ直しました。

3. iOSDriver起動

ターミナル上でコマンド実行して動かします。
java -jar ios-server-standalone-0.6.6-SNAPSHOT.jar
または
java -jar ios-server-standalone-0.6.6-SNAPSHOT.jar -port 好きな番号
が妥当です。
下記のコマンドで好きなポートを指定できます、デフォルトは5555です。
上手く出力できれば、こんなカンジになります。

iOSdriver.sh
58:43:824 INFO ApplicationStore.<init>  App archive folder:/path/to/applications
version:663b7cc0a7a48ff629b1bcb39bbd78aed1c1e560
Beta features enabled (enabled by -real flag): false
Simulator enabled : true
Inspector: http://0.0.0.0:5555/inspector/
Tests can access the server at http://0.0.0.0:5555/wd/hub
Server status: http://0.0.0.0:5555/wd/hub/status
Connected devices: http://0.0.0.0:5555/wd/hub/devices/all
Applications: http://0.0.0.0:5555/wd/hub/applications/all
Capabilities: http://0.0.0.0:5555/wd/hub/capabilities/all
Monitoring '/path/to/applications' for new applications
Archived apps: /path/to/applications
Build info: ios-driver 0.6.6-SNAPSHOT (built:20141009-1559,sha:663b7cc0a7a48ff629b1bcb39bbd78aed1c1e560)
Running on: Mac OS X 10.9.5 (x86_64)
Using java: 1.8.0_31
Using Xcode install: /Applications/Xcode.app
Using instruments: version:5.1.1, build: 55045
Using iOS version 7.1
iOS >= 6.0. Safari and hybrid apps are supported.
Applications :  CFBundleName=Safari,CFBundleVersion=9537.53,/path/to/.ios-driver/safariCopies/safari-7.1.app
2015-02-17 20:58:44.738:INFO:oejs.Server:jetty-8.y.z-SNAPSHOT
2015-02-17 20:58:44.810:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:5555

4. PHPUnitで動かす

PHPUnitで動かします。
ブラウザ設定は最低限こんなカンジにすれば動くと思います。

setup.php
public static $browsers = array(
        array(
            'name'=>'iphone',
            'browserName'=>'iOS',
            'host'=>'localhost',
            'port'=>5555,
            'timeout'=>30000,
            'browser'=>'remote',
            'url' => 'http://localhost:5555/wd/hub',
            'desiredCapabilities' => array(
                'simulator'=>true,
                'device' => 'iphone'
            ),
        ),
    );

urlの項目は上記のiOSDriverの出力の
Tests can access the server at http://0.0.0.0:5555/wd/hub
に対応しています。
deviceはipadなんかもOKです。
サンプルプログラムは下記にあげましたので参考までに。
https://github.com/butackle/iOSDriverPHPUnitExample

以上です。
かなり私自身が手探りで行いましたので、ご指摘あればドシドシと。
チキンなので優しい口調でお願いします。