ブログからの転載記事です。

Javaのテストカバレッジを計測できるオープンソースライブラリの現状を調査してみました。

要約

Coberturaは開発が停止しているため、今後はJaCoCoもしくはCloverが主流となりそう。ただしCloverは最近オープンソース化されたため、今後の継続開発(=コミュニティの活発度)はあまり見えていない。

主要な3ライブラリの概要

JaCoCo

  • 最新版は2018年1月リリースのバージョン0.8.0(2018年3月時点)。
  • 実行時に計測(on-the-fly instrumentation)できないクラスに対して、クラスファイルに計測処理を事前に追加する(offline instrumentation)ことができる。

Cobertura

  • 開発は2015年2月で止まっている。
  • Java 8に未対応でLambda式などの記法があるとその部分の計測ができない。
  • 他のライブラリでは対応していない複数のモジュールから構成されるプロジェクトに対する計測レポートの集約に対応している。

Clover

  • 元々は商用ソフトであったが2017年4月にオープンソース化された。
  • 他のライブラリと異なり、クラスファイルではなくソースコードに対して計測コードを追加してカバレッジを計測する。
  • 複雑度(cyclomatic complexity)だけではなく20以上のメトリクスに対応する。

その他のライブラリなど

EclEmma

  • JaCoCoでのカバレッジ計測をEclipse上で行うためのEclipseプラグイン。
  • かつてはカバレッジ計測ライブラリにEMMAを利用していたが、EMMAの開発が2005年に止まったため、独自にカバレッジ計測ライブラリJaCoCoを開発して、こちらに移行した。

JMockit

参考

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.