前提
- Cucumber + Capybara + Poltergeistで受け入れテストを自動化(RSpecのrequest specでも構わないと思う)
- Capybaraはubuntu 12.04 サーバー上で動いている
- CapybaraはPoltergeistをjavascript_driverに使っている
- OS X上で実行時の状態をWeb インスペクタを使ってデバッグしたい
- OS Xはmountain lion
準備
- OS XにX11を入れる http://xquartz.macosforge.org/landing/
- XQuartzを起動。環境設定 -> セキュリティで「ネットワーク・クライアントからの接続を許可」にチェックを入れる
- XQuartzを再起動
- X11アプリの「ターミナル」を起動し、下記のように入力し、外部X Serverからの入力を受付設定する
$ xhost +
- ubuntuサーバー上で、下記のように実行し、XをOS X側に飛ばすようにする
$ export DISPLAY=192.168.1.23:0.0
- ubuntuサーバーにchrominiumを入れる
$ sudo apt-get install chromium-browser
- feature/support/env.rb にて下記のように、inspectorにchromium-browserを設定する
Capybara::Poltergeist::Driver.new(app, :inspector => 'chromium-browser')
実行
- テストプログラムで、下記のように呼び出すと、OS X上のX 11でubuntuのchrominiumが投影される
page.driver.debug
- 表示されるページの下のリンクをたどると、page.driver.debugが呼び出された時点のインスペクタが表示され、ここでいつも通りデバッグできる
OS Xであるとか、Ubuntuであるとか、そういうのは、特に関係なく、他のOS同士でも手順は違うと思うけど同等の環境は当然作れると思う。