- 追加された行はこの色です。
- 削除された行はこの色です。
#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(おもしろかった[2],そうでもない[0])
#vote(おもしろかった[4],そうでもない[0])
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}