Hudson投入その後2
なんか仕事の方は総合テスト?に入っているのだがさらに燃えさかっている。。。orz
そら各社モジュールが密結合な状態で構成管理がノープランなんだからコンパイルが通っていること自体奇跡といえる。
というか無理矢理コンパイル通しているせいでS2コンテナ起動時にVerifyErrorが出たりしているし。。。
僕自身もComponentAutoRegisterの使い方ミスったりもした。。。orz
Hudsonは継続的インスペクションと継続的単体テスト(DBアクセスしないモック版)の環境を整えた。
JNLP経由の分散ビルドもやってみた。Windows環境だとFWを無効にしないとダメみたい。
テストでOutOfMemoryが出ているので[Seasar-user:5230] Re: JUnitでOutOfMemoryと関係あるかもって思ってAntのjunitタスク実行時のヒープサイズ増やしたりしたけどダメ。
なのでテスト分割した。
けどよくみたらjunit-reportで出てた。なのでHudson上のANT_OPTSでヒープサイズ増やしたらいけた。分割しないでもOK。と思ったら分割した版のがダメになったw よくわからん。
カバレッジはdjunitのほうはうまくいくけどcoberturaでLexicalエラーが出た。Mavenは使ってないけどhttp://jira.codehaus.org/browse/MCOBERTURA-116と同じだと思う。
これはUTF-8で日本語使ってるとでるっぽい。かるくソースみたらエンコーディングの設定があるようにみせかけてデフォルトエンコーディングで読み込んでいるっぽかったので無理矢理UTF-8で読み込むようにしたらうまくいった。
起動したHudsonから既存のjobがごっそり消える問題も発生。ファイルシステム上は残ってる。
1.334から1.336にバージョンアップしようとしたさなかに発生。これ自体は多分関係ない。
ちなみにTomcatをサービス起動していてHudsonのwarをそこにデプロイする環境。
c:\.hudsonにジョブが保存されているのだが、別のところを見にいってた。Administratorやpostgresアカウントのホームディレクトリの下を見てたり、c:\.hudson\.hudsonなる謎ディレクトリが作成されたりしてた。
どうもPostgresqlをインストール、サービス登録してpostgresアカウントを作った後になったっぽい。関係あるかわからんけど。
http://polestar.eek.jp/mt/blog/2008/06/hudson.htmlとか参考にしたけど、最終的には以下の方法で解決。
・ローカルシステムアカウントではなくAdministratorでサービス起動
・環境変数HUDSON_HOMEにc:\.hudsonを設定
・念のためpostgresサービスは停止しておく
次のステップはdbunitを使ったDBを使用したテスト。対象はまずはDAO。別の担当者が調査しているのだがバックアップしたデータをDBにうまく戻せないらしいw
しかもdbunitはsetupとteardownにいろいろ書かないといけないのでそれをいかにして共通化するかも課題。テストデータやバックアップデータの保存場所も要検討。パスハードコーディングはいけてないからね。