Selenium on Rails

これは必須でしょう。

install

RAILS_ROOT> ruby script/plugin install http://svn.openqa.org/svn/selenium-on-rails/selenium-on-rails
RAILS_ROOT> gem install win32-open3
RAILS_ROOT> cd vendor/plugins/selenium-on-rails
RAILS_ROOT/vendor/plugins/selenium-on-rails> rake
RAILS_ROOT/vendor/plugins/selenium-on-rails> cd ../../..

rakeでテストしなくてもいいけど、ちゃんと動くかどうかを試しておいた方がいいよね。


実際にテストを作るのはSelenium-IDEでやった方が楽だけど、Selenium用のディレクトリを作成しておくために、ダミーのテストケースを生成。

RAILS_ROOT> ruby script/generate selenium login

FirefoxSelenium-IDEをインストール。 http://www.openqa.org/selenium-ide/download.action

テストを作成

テストケースを作成するために、実際にアプリを動かす必要があるので、testで動かしておく

RAILS_ROOT> ruby script/server -e test


で、Firefoxhttp://localhost:3000 にアクセス。[ツール]-[Selenium IDE]でSelenium IDEを開いておく。
Selenium-IDEの使い方は http://wiki.openqa.org/display/SIDE/Recording+a+Test が分かりやすそう。

で、動作やアサーションを記録したら、RAILS_ROOT/test/seleniumの下にhtmlで保存。

テストを実行

vendor/plugins/selenium-on-railsにあるconfig.yml.exampleをテスト実行環境に合わせて設定する。と言っても、selenium-coreはプラグイン内に入っているので、特に設定しなくてOKだから
ブラウザのパスだけ確認する。Operaとか他のブラウザも使いたかったら、勝手に適当な名前でパスを設定すればOK。


で、rakeで起動

RAILS_ROOT> rake test:acceptance

で、ブラウザが開きまくってテストが実行されます。うおーちょーべんりー。
前から知ってたのに、今までやらなかったことをすげい後悔しました。


Seleniumは出来上がったものに対してのテストを行うので、本来のRailsのテストのようにTDDを推進するものじゃないっす。
でも大抵のプロジェクトはテスト期間とかを設けると思うので、そのときにはもう必ず使うと良いと思うのです。


再現性のあるバグなら文章で報告してもらうよりもこっちの方が分かりやすいように思えるので、不具合を報告してもらうツールとしても便利かもしれません。論よりコード。