Javaのテストカバレッジを計測できるオープンソースライブラリの現状を調査してみました。
要約
Coberturaは開発が停止しているため、今後はJaCoCoもしくはCloverが主流となりそう。ただしCloverは最近オープンソース化されたため、今後の継続開発(=コミュニティの活発度)はあまり見えていない。
主要な3ライブラリの概要
- 最新版は2018年1月リリースのバージョン0.8.0(2018年3月時点)。
- 実行時に計測(on-the-fly instrumentation)できないクラスに対して、クラスファイルに計測処理を事前に追加する(offline instrumentation)ことができる。
- 開発は2015年2月で止まっている。
- Java 8に未対応でLambda式などの記法があるとその部分の計測ができない。
- 他のライブラリでは対応していない複数のモジュールから構成されるプロジェクトに対する計測レポートの集約に対応している。
- 元々は商用ソフトであったが2017年4月にオープンソース化された。
- 他のライブラリと異なり、クラスファイルではなくソースコードに対して計測コードを追加してカバレッジを計測する。
- 複雑度(cyclomatic complexity)だけではなく20以上のメトリクスに対応する。
その他のライブラリなど
- JaCoCoでのカバレッジ計測をEclipse上で行うためのEclipseプラグイン。
- かつてはカバレッジ計測ライブラリにEMMAを利用していたが、EMMAの開発が2005年に止まったため、独自にカバレッジ計測ライブラリJaCoCoを開発して、こちらに移行した。
- テスト用のモックツールであるが、カバレッジの計測にも対応している。