jcoverage その2
どうやら,こいつはバイトコードにカバレッジ用のコードを追加するタイプのカバレッジツールのようだ.
jcoverageの使い方メモ.
- とりあえず対象コードをコンパイル
- コンパイルしたクラス(*.class)に対して,jcoverageのinstrumentタスクを実行して,カバレッジ機能を付加する.
- instrumentタスクで生成されたバイトコードを実行すると,jcoverage.serというファイルが生成される(これがカバレッジの情報を持ってるらしい).
- jcoverage.serとソースディレクトリを指定して,reportタスクを実行するとレポートを生成してくれる.
こんな感じ.
instrumentタスクで,こんな風に
#instrumentタスクにあるdatetime属性.書いてないのに,勝手に出てくるのはなんで?
カバレッジの対象にしたくないクラスを指定できちゃう(上記の場合は,テストハーネスを除外したいんだろう).そうした場合,instrumentタスクで生成したクラスだけでは足りないクラスがあるので,クラスパスの設定に注意が要る.
逆に言えば,instrumentタスクで全部のクラスを対象にしちゃえば,出来上がったクラスを使うだけでよいはず.
#テストハーネスを別ディレクトリに生成してれば,何の問題もないだろうに.
(追記)
READMEに「商用利用はGPLじゃねぇぞ」と書いてるっぽい.
#getoptは,同梱されてましたね.