Maven2+djUnit+Cloverに挑む

この問題解決しました → http://d.hatena.ne.jp/tanigon/20080416#p1


うちの会社ではdjUnitを使っている人が多い。これは、たとえば

  • new Date() しているコードを(独立して)テストする
  • staticなメソッドをコールしているコードを(独立して)テストする
  • File()とか使っているコードを(独立して)テストする

ということがしたいときには非常に便利で、私も愛用している。
CI(continuous integration)をantベースでしているときは全く問題がなかった。

最近、うちの新規開発にパターンがあることに気がついて、みんなで「自分たち用archetype」を作った。archetypeによって作られるのもまたmavenプロジェクト、社内の共通ライブラリも自分リポジトリに入れてmavenで解決、おお、これは素晴らしい!と思ってたのもつかの間。djUnitがそのままでは使えないんザマス。

mavenのtestフェーズは、標準では maven-surefire-plugin を使うことになっている。こいつはなかなか優秀なのだけど、djUnitは使えないような気がする(使える!という人、誰か教えて...)。

仕方なく、maven-antrun-pluginを使って、antを呼んで、antの中でdjUnitタスクを使ってテストをする、という方法を選んでみることにした。surefireならではの恩恵にも大して預かっていないので問題ないはず。

・・・次回に続く。いまんとこうまくいってない。1日で解決しないなんて!

ちゃんと切り分けしたほうが早いような気がするなあ。CloverでエラーでたりdjUnitでエラーでたり難航中。


ちなみに、+Clover の部分もうまくいってない。というのは maven-clover-plugin (2.0のほう) は使えることには使えるのだけど、CloverInstrを呼ぶときに -e オプションをつけてもらう方法がない。Configurationする項目がないのだ。platform encodingになるので非常に悲しい。mvn -Dfile.encoding=utf-8 とかしてみたけどだめだった。この問題も実は根深いかもしれない。