Mac OS X での Rails アップデート
既存バージョンの確認
$ ruby -v ruby 1.8.7 (2009-06-08 patchlevel 173) [universal-darwin10.0]
$ gem -v 1.3.5
$ rails -v Rails 2.3.5
Mac でのアップデートは簡単。以下の通り。
sudo gem update --system
sudo gem install rails
sudo gem update rake
確認
$ gem -v 1.4.1
$ rails -v Rails 3.0.3
昔はgemすら入ってなかったのに、今は gemもRailsもプリインストールされている。 便利な環境になったもんです。
ちなみに Rails2.3.5 と Rails3.0.3 は共存しています。 Rails2.3.5 系を実行したい場合は
rails 2.3.5とすればOKです。
watij
webア プリケーションに selenium を採用してからかなりの時間が経つが、やはりしっくりこない点が多く、IE では使いにくい。他に良いテスティン グツールはないものかとをネットを探していたら、watij (ワットと発音?)なるものがあった。
IE で使うなら selenium よりも使い勝手が良さそう。試行錯誤の度合いも selenium を使うよりは少なかった気がする。
もちろん Alert や Confirm にも対応しており、子ウィンドウや webページダイアロ グにも対応している。ただし FireFox や Opera, Chrome などク ロスブラウザで使う必要があり、FireFox で Selenium IDE など強力な Webオペレーション記録ツールが使用可能なら Selenium を利用する方がコ ストパフォーマンスは良いかもしれない。
今回は IE のみで動く 昔ながらのビジネスア プリケーションをテストする必要があったので Watij を採用する事にした。ネット上にドキュメントがかなり少ないようなので、つまずいた点や参考になりそうな点をつらづらと綴っていく。
参考サイト
ダ ウンロード
こちらから
zip を解 凍し、lib 配下の jar ファイルをすべて eclipse プロジェクトなどにコピーしておくのを忘れないように。
※ダ ウンロードした zipファ イルの中 (src/java-test/watij) に テストクラスがあるので、テスト方法がわからない場合は参考にすればよい。かなり参考になると思う。
使用方法
私の環境では beanShell はうまく動かなかった事と、Java 方が馴染みがある事と、どうせ Java Web ア プリケーションをテストする為に使うので Java 技術者に広く展開できるよ うに Java UI でのテストを試みる。
IE ie = new IE(); ie.start("http://www.google.com"); ie.textField(name,"q").set("Watij"); ie.button("Google Search").click();のように書いてあるのだが name が解決できるわけがない。。
どうしてコレでみんなうまくいくのかが実はよくわからず。
自分なりの解決方法をで解決を試みる。*1
Symbol name = new AttributeFinder("name");結局 Symbol が見つからないだけなので、上記のようにあらかじめ指定して解決。
(BeanShell ではこのままでうまくいったりするのでしょうか?これがよくわからないです。あくまでも例文はそれくらいわかるやろ的なある程度抽象化したコードだったのでしょうか?)
その他のシンボルはこのような感じで指定できる。
Symbol value = new AttributeFinder("value"); Symbol text = new TextFinder(); Symbol xpath = new XPathFinder(); Symbol tag = new TagFinder(); Symbol url = new UrlFinder();ス クリーンショット
ie.windowCapture("C:\xxx\yyy\0000.png"); ie.windowCapture("./0000.png");Aタグの href属性に記述された特定の文字列を探し、そのリンク をクリックする方法。
ie.link(xpath,"//A[contains(@href,'javascript') and contains(@href,'shop=00001') and contains(@href,'dept=DA0001')]").click();例えば href=”javascript(‘shop=00001′,’dept=DA0001′,’sex=female’);” のように関数処理したりしている場合でもこのよ うな指定で画面中の任意のリンクをクリックできる。
xpath文 の記述中でHTMLタグは 大文字で記述しないとelementの検索がうまくいかないので注意が必要。
※ 2010.04.09 追記
この問題は
import static watij.finders.SymbolFactory.*;とする事で解決できる事を確認 ( Release 3.1.0にて確認済み。 )
SVN ERROR
Subversion(SVN)リポジトリから更新を実行する際 以下のようなエラーが発生した。
REPORT request failed on ‘/repository/!svn/vcc/default’ REPORT of ‘/repository/!svn/vcc/default’: 200 OKこのような場合、まずは原因の切り分けが必要。 [問題判別] ・別のディレクトリ(もしくは別のマシン)にリソースをチェックアウトして新しく作業コピーを作成し、そこでも同じ現象が起きるか検証する [検証結果1] 新しい作業コピーで問題の現象が発生しないのであれば、リポジトリが破損しているとは考えられない。ローカルの.svn情報が壊れているか、不整合が起こっている可能性がある。 [検証結果1-対処方法] a. 更新を実行した作業コピーより下位の階層で個々の作業コピーに対して更新をかけ、エラーの出所を明らかにする。 b. 更新エラーが発生する作業コピーが特定できたら、そのディレクトリ名をリネームし、再度更新を実行する。(エラーが発生するディレクトリのみチェックアウトしなおすのと同じ) c. 正常に更新できればOK [検証結果2] 新しい作業コピー(もしくは別のマシン)で問題の現象が発生するのであればリポジトリが破損している可能性がある。 a. svnadmin verify でリビジョンの状態をチェックし、エラーの発生リビジョンを特定する。(“svn: Can’t read file ‘/xxxxx/svn/svndb/db/revs/3000′: 入力/出力エラーです”といったメッセージが表示される) b-1. バックアップを取っているのであれば、svnadmin loadコマンドなどで壊れる前のリビジョンまで復元する。 b-2. バックアップを取っていない場合、下記の方法で無理矢理復活できるかもしれませんが、推奨できない方法。at your own lisk で対処する事。 $repository/db/revs にある破損したリビジョン以降のリビジョンファイルを削除する $repository/db/revprops にある1で削除したものと同じリビジョンファイルを削除する $repository/db/current を編集して、破損したリビジョンに変更