#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;}