画面から叩くテストを自動化すべく、Selenium on Railsプラグインを導入してみた。
プラグインのインストール
% ruby script/plugin install http://svn.openqa.org/svn/selenium-on-rails/selenium-on-rails
次いで
% ruby script/server -e test
とサーバーを起動しようとしたところ、
undefined method `register_template_handler' for ActionView::Base:Class (NoMethodError)
というエラーが発生した。Rails2.1への移行でちらほら見かけるようなエラーな気がする。
これについてはOpenQA Forums Have Been Discountinuedでパッチが公開されているらしく、ダウンロードして適用した。
% cd vendor/plugin/selenium-on-rails % wget http://clearspace.openqa.org/servlet/JiveServlet/downloa.... (省略) % patch < rails_2.1.patch
パッチを適用するところで、途中、3回ほど対象ファイルのPathを聞かれてくるので、
とそれぞれ入力した。
再度、
% ruby script/server -e test
でサーバーを起動し、http://localhost:3000/seleniumにアクセスして動いていることを確認。
SeleniumIDEでテストケース作成
見つかりませんでしたからFireFoxのAddOnをインストールし、ツール→Selenium IDEで起動。
起動した状態で画面操作を記録する状態になっているので、テストケースに沿って画面を操作して、記録を終了させる。これで1つのテストケースができるけど、そのままだと画面遷移を待たずに操作をしちゃったりと都合が悪いので、適宜、「WaitForPageToLoad」とか「Pause」を入れていく。
で、ファイル→テストケースの保存 でテストケースが保存できる。
これをRAILS_ROOT/test/seleniumに入れておくと、http://localhost:3000/seleniumにアクセスした時に読み込んでくれるみたい。