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
FirefoxにSelenium-IDEをインストール。 http://www.openqa.org/selenium-ide/download.action
テストを作成
テストケースを作成するために、実際にアプリを動かす必要があるので、testで動かしておく
RAILS_ROOT> ruby script/server -e test
で、Firefoxでhttp://localhost:3000 にアクセス。[ツール]-[Selenium IDE]でSelenium IDEを開いておく。
Selenium-IDEの使い方は http://wiki.openqa.org/display/SIDE/Recording+a+Test が分かりやすそう。
テストを実行
vendor/plugins/selenium-on-railsにあるconfig.yml.exampleをテスト実行環境に合わせて設定する。と言っても、selenium-coreはプラグイン内に入っているので、特に設定しなくてOKだから
ブラウザのパスだけ確認する。Operaとか他のブラウザも使いたかったら、勝手に適当な名前でパスを設定すればOK。
で、rakeで起動
RAILS_ROOT> rake test:acceptance
で、ブラウザが開きまくってテストが実行されます。うおーちょーべんりー。
前から知ってたのに、今までやらなかったことをすげい後悔しました。
Seleniumは出来上がったものに対してのテストを行うので、本来のRailsのテストのようにTDDを推進するものじゃないっす。
でも大抵のプロジェクトはテスト期間とかを設けると思うので、そのときにはもう必ず使うと良いと思うのです。
再現性のあるバグなら文章で報告してもらうよりもこっちの方が分かりやすいように思えるので、不具合を報告してもらうツールとしても便利かもしれません。論よりコード。