Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

ツールごとのC1カバレッジ取得方法比較

Java

ReportGeneratorでは、分岐カバー率50%を超える行は緑色で表示されてしまい、条件網羅を記録するJaCoCoのようなツールでは逆に表示が分かりにくいという問題があることが分かったので、JaCoCoはEclipseの画面をそのまま表示。

JaCoCoはバイトコード単位で分岐を記録しており、C1(分岐網羅)でなくC2(条件網羅)相当での記録になっているため、49行目が黄色表示となっているのが大きな違い。

JaCoCo OpenClover
f:id:satob:20211206010919p:plain f:id:satob:20211205031101p:plain

VB.NET

OpenCoverは23行目を真の場合しか実行していないことを正しく記録している一方、Coverletは23行目を100%実行済と記録してしまっている。35行目も同様。また、OpenCoverは50行目の条件分岐に偽のケースがあることを正しく認識している一方、Coverletはこちらも100%実行済と記録してしまっていることが分かる。AltCoverはOpenCoverと同じ。

Coverlet OpenCover AltCover
f:id:satob:20211202013142p:plain f:id:satob:20211204192147p:plain f:id:satob:20211217002629p:plain