📊

【Codecov】PRページに表示されるカバレッジ結果の見方

2023/11/06に公開

GitHubのPR時に表示されるcodecovの計測結果の見方

Codecovを導入後、PRページに表示されるcodecovの計測結果の見方を記載。


↑GitHubのPR時に表示されるcodecov例


Attention: ○lines in your changes ...

Attention: 12 lines in your changes are missing coverage. Please review.

コミット内の変更があったファイルに対して、カバレッジが欠けている行を示している。
上記の例だと12行分テストがカバーされて無いことがわかる。
GitHubのPRページのFile changedを確認すると、警告がある行それぞれにコメントが入っていることが確認できる。




Comparison is base ...

Comparison is base (xxxxxxx) 8.05% compared to head (xxxxxxx) 8.78%.

ベースbranchのcommitから、今回のcommitまでの全体のカバレッジ変更率を示している。
上記の例だと、ベースbranchのcommitから今回のcommitまでのカバレッジの変化は+0.73%であることがわかる。




Additional details and impacted files

Additional details and impacted files
# 値は全てプロジェクト全体の値
======================================== 
@@           Coverage Diff            @@ 
##             dev    #607      +/-   ## 
======================================== 
+ Coverage   8.05%   8.78%   +0.73%      
======================================== 
  Files         51      61      +10      
  Lines       1962    2492     +530      
======================================== 
+ Hits         158     219      +61      
- Misses      1804    2273     +469      

Coverage Diff

ベースbranchからの変更によるカバレッジの増減を示す。
左側がベースbranchの値、右側が今回のcommitの値。

Coverage

カバレッジ率の変化を表示。

Files

ファイル数の変化を表示。

Lines

行数の変化を表示。

Hits

テストによって実行されたコード行の数を表示。

Misses

テストによって実行されていないコード行の数を表示。

【Tips】

Attention: ○lines ...で表示されている行数と、Missesで表示される行数は、どちらもカバレッジが欠けている行数を示しているが違いは何か?

Attention ... の部分で表示されている行は、今回の変更で追加した行が表示されているので分かる。
しかし、Missesの部分で追加された未確認の行は+469行と表示されていて、そもそもそんなにファイルの変更をしていない。これはなに?

codecovのコンソールを確認してみる。

file changedindirect changesが存在する。
見慣れないindirect changesを見てみると、変更を加えていないファイルに変更がかかっているのが確認できた。
また、注意書きには「これらは著者のリビジョンがないファイルだが、予期せぬカバレッジの変更が含まれている。」と書かれており、ドキュメントを見ると「カバレッジが予期せぬ形で間接的に変更される...」との記載があり色々と原因が記載されている。
どうやらこのindirect changesMissesに影響を与えてそう。

なので、とりあえずはindirect changesMissesについては、あまり気にせずに、
それよりはAttension ...の部分で表示されている行をまずは優先で確認することが重要かと。

余裕があればドキュメントに記載のあるように、「indirect changes」の根本原因を探して改善していくのが良さそう。

Codecov Docs / Unexpected Coverage Changes




Flag

フラグ設定している場合は、そのフラグ毎のカバレッジ情報を表示。




Files

変更のあったファイル毎のカバレッジ情報を表示。




Coverage Delta(Δ)

Coverage Δ 例

absolute <relative> (change)
8.78% <52.00%> (+0.73%)
94.44% <94.44%> (ø)
68.84% <100.00%> (+13.36%)
  • absolute : commit後のプロジェクト全体のカバレッジ率を表示。
  • <relative> : commit分だけのカバレッジ率を表示。
  • (change): ベースbranchと今回のcommit後とを比較したカバレッジの増減値を表示。
  • ø : カバレッジに変更がなかったことを表す。
GitHubで編集を提案
NCDCエンジニアブログ

Discussion