今回は以下のUnitテスティングツール 概要 †サイトの引用ですが、 Unit tests drive code quality; Clover drives unit test quality. ということだそうです。UnitTest?が効率よくできればよいんですが。。 インストール †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の準備 †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. となりました。(バイトコードに何か処理を追加しているんでしょうか。そのコードをテストして意味があんのかって話はあるよね)*1 使い方 †先ほどの通り、コンパイルタスクの前に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を使用する †<target name="clover.view" depends="with.clover"> <clover-view/> </target> を実行することで、 が起動します。ここから、PDFの生成とかができるみたいです。 うまくいかないことがありました。 †どれだけantを実行しても、 [clover-report] No coverage data found for 'hogehoge\mycoverage.db'. [clover-report] No coverage recordings found. No report will be generated. となってしまうことがありました。 何のことはなく、testディレクトリにテストケースを入れていたのですが、そこのコンパイルを忘れていたため、ホントにJunitが実行されていないのが原因でした。 この記事は 現在のアクセス:11396 |