余は如何にしてプログラマとなりし乎

技術的な興味を持ったこと、試してみたことなどをメモ書き程度に残す予定。ときどき不規則発言が混じる

名前:
場所: 目黒区, 東京都, Japan

エンジニアの柱。技術力向上キャンペーン中

月曜日, 6月 27, 2005

Coberturaでのカバレッジテスト

Seleniumでブラックボックステストを行うと同時にホワイトボックステストも行いたい。そのためのコードカバレッジテストツールCoberturaの紹介

Antタスクによって簡単にカバッレッジ用のclassファイルを作成することができる。
<target name="CoveragePrepare" depends="compile">
<mkdir dir="${report.home}"/>
<cobertura-instrument
datafile="${report.home}/cobertura.ser">
<fileset dir="${build.home}">
<include name="**/*.class"/>
</fileset>
</cobertura-instrument>
</target>


このタスクを実行して生成されたclassファイルを元にサーブレットコンテナを立ち上げて、Seleniumでテストする。このときに起動するjvmのオプションとして-Dnet.sourceforge.cobertura.datafile=保存先\cobertura.serを必ず指定すること。

テスト終了後、カバレッジを調べるためのAntタスクを実行する。
<target name="CoverageReport">
<cobertura-report srcdir="${src.home}"
destdir="${report.home}"
datafile="${report.home}/cobertura.ser"/>
</target>


これでレポートが出来上がる。

注意点:

  • 手元のTomcat4.1.31+J2sdk1.4.2_08では終了時に例外が発生する(shutdownhookの問題)ため、明示的にCoberturaをとめる必要がある。

    ProjectData.saveGlobalProjectData();