#topicpath
----
今回は以下のUnitテスティングツール~
[[Clover:http://www.thecortex.net/clover]]
を試用してみました。

#contents
***概要 [#beef46cb]
サイトの引用ですが、
 Unit tests drive code quality;
 Clover drives unit test quality. 
ということだそうです。UnitTestが効率よくできればよいんですが。。


***インストール [#y730f21b]
Antのタスクだそうで、build.xmlを使用する際に、
 <path id="build.classpath">
 	<pathelement path="../lib/clover.jar" />
 	<pathelement path="${ant.home}/lib/junit.jar"/>
 </path>
とパスを通すこと、あとは${ANT_HOME}/lib/にclover.jarを置けばOKです。

***Tutorialの準備 [#rb5896fc]
Tutorialをやってみました。Tutorialに添付されたファイルは、とりあえずJUnitが稼動するまでのファイルになっていて、チュートリアルに沿ってファイルを修正していく、というものです。
いまのところ、
 clover.jarにクラスパスを通す
 <path id="build.classpath">
 	<pathelement path="../lib/clover.jar" /> 
 	<pathelement path="${ant.home}/lib/junit.jar"/>
 	<pathelement path="${build}"/>
 </path>
 
 タスクの一斉定義
 <taskdef resource="clovertasks" >
 	<classpath refid="build.classpath"/>
 </taskdef>
 
 clover初期化(?)タスク
 <target name="with.clover">
 	<clover-setup initString="demo_coverage.db"/>
 </target>
を追加しました。んで、いままで
 ant code <-コンパイルタスク
としていたところを
 ant with.clover code
とすると、コンパイルをフックしてcloverがなんかをやっているみたいです。実行結果は
 code:
  [javac] Compiling 4 source files to xxxxxxx
  [clover] Clover Version 1.2.4, built on December 01 2003
  [clover] loaded from: file:/C:/javatools/ant/lib/clover.jar
  [clover] 30 day Evaluation License registered to m-kino@xxxxxx
  [clover] You have 29 day(s) before your Evaluation License expires.
  [clover] No coverage database 'xxxxxx\demo_coverage.db' found. Creating a fresh one.
  [clover] Clover all over. Instrumented 4 files.
となりました。(バイトコードに何か処理を追加しているんでしょうか。そのコードをテストして意味があんのかって話はあるよね)((デコンパイルしてみたら、たしかにcloverパッケージのクラスをimportしてなんか使ってました。))

***使い方 [#ic41a67b]
先ほどの通り、コンパイルタスクの前にwith.cloverタスクを実行することで、テスト結果データベースなどを作成するみたいです。あとはant testなどを行うと、そのデータベースに情報が書き込まれて蓄積されていく仕様みたいです。さて、次はテストレポートを作成しましょう。
以下のタスクを追加します。
 <target name="report.html" depends="with.clover">
 	<clover-report>
 		<current outfile="clover_html" title="clover demo">
 			<format type="html"/>
 		</current>
 	</clover-report>
 </target>
そして
 ant report.html
でJavaDoc風のレポートが作成されました。

***GUIを使用する [#o96b509a]
 <target name="clover.view" depends="with.clover">
   <clover-view/>
 </target>
を実行することで、
#ref(image.png)
が起動します。ここから、PDFの生成とかができるみたいです。


** うまくいかないことがありました。 [#u96a74d1]
どれだけantを実行しても、
 [clover-report] No coverage data found for 'hogehoge\mycoverage.db'.
 [clover-report] No coverage recordings found. No report will be generated.
となってしまうことがありました。

何のことはなく、testディレクトリにテストケースを入れていたのですが、そこのコンパイルを忘れていたため、ホントにJunitが実行されていないのが原因でした。



----
この記事は
#vote(おもしろかった[3],そうでもない[0])
#vote(おもしろかった[4],そうでもない[0])

#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS