Javaのコードカバレッジ取得ツールOpenCloverの新バージョン 4.5.0が2023年10月4日にリリースされました。
OpenClover - Java, Groovy and AspectJ code coverage tool
OpenCloverのいいところは以下の記事にも書いたとおり、ソースコードレベルのC1カバレッジを正しく認識してくれること。
なので、たとえばセキュリティデューデリジェンスの関係で「開発したソースコードのC1カバレッジは原則100%とすること」みたいなルールが定められていた場合、JaCocoだと「この部分のC1カバレッジが100%になっていないのはこれこれこういう理由で……」と記録しておく必要がある一方、OpenCloverだとそのような手間をとらずに済む可能性がある*1。
また、.NETとJavaが混在する開発環境においてコードカバレッジの取得に関する基準を揃えられるという利点もある。OpenCover*2ではソースコードレベルのC1カバレッジを取得するので、JaCoCoのようなバイトコードレベルでのC1カバレッジを取得するツールを使うとJavaと.NETとで必要なテストケースのラインナップが変わってしまう。
OpenClover 4.5.0では私が対処したアノテーション関連のバグ修正がいくつか入っているのだが、他にも試験的にJava 17の文法に対応している。たとえばテキストブロック(ヒアドキュメント)やRecordクラスへの対応が含まれている。
一方で対応していない文法もあって、たとえばリリースノートにあるSwitch式には対応していない。リリースノートに書かれていないけれど、ほかにもSealedクラスとか、instanceofのパターンマッチングにも対応していないんじゃないかな……?