カバレッジ測定とCIとの連携
(3)
カバレッジとは
カバレッジとは、
カバレッジにはどこまで厳密に測定するかによって複数の種類がありますが、
Devel::Coverによるローカル環境でのカバレッジの測定
次は、
Devel::Coverとは
Devel::Coverを使うと、Devel::Cover
はcpanm
コマンドでインストールできます。
$ cpanm --quiet --notest Devel::Cover
Devel::Coverによるカバレッジの測定
Devel::Coverを使ってカバレッジを測定するには、prove
コマンドとcover
コマンドを使います。テスト対象モジュールのルートディレクトリへ移動し、
$ HARNESS_PERL_SWITCHES="-MDevel::Cover=+ignore,^t" prove -lvr t
$ cover -report html
カバレッジを測定しながらテストを実行するため、
カバレッジの測定結果はHTML形式で出力されます。cover_
をブラウザで開いてみましょう。図10のように、

Codecovによるカバレッジの可視化
カバレッジは測定するだけではあまり意味がありません。測定結果をもとに、
カバレッジの測定結果を開発に活用していくには、
Codecovとは
Codecovでは、
Codecovへのカバレッジの送信
それでは、Devel::Cover
でカバレッジを測定し、
本稿では、.travis.
に次のような記述を行います。
language: perl
perl:
- "5.26"
before_install:
- cpanm --quiet --notest --skip-satisfied Devel::Cover::
Report::Codecov
script:
- perl Build.PL && ./Build build
- cover -test
after_success:
- cover -report codecov
before_
ステップでは、Devel::Cover
のレポータであるDevel::Cover::Report::Codecov
をインストールしています。Devel::Cover::Report::Codecov
にはDevel::Cover
への依存が定義されているため、
script
ステップでテストの実行とカバレッジの測定を行い、after_
ステップでカバレッジの測定結果を送信しています。after_
ステップは、script
ステップのすべてが正常に終了した場合
カバレッジが正常に送信されると、

CodecovとGitHubの連携
CodecovにはGitHubとの連携機能があります。連携機能を利用すると、
- GitHub上でカバレッジの可視化
- Codecovへわざわざ遷移せずにカバレッジ測定結果を意識した開発を行える
- Pull Requestのカバレッジを自動で測定し、
結果をコメントとして投稿 - カバレッジの増減をPull Requestからの画面だけで判断でき、
テスト不足にすぐ気づける (図12)

連携機能は、
まとめ
今回は、
さて、
本誌最新号をチェック!
WEB+DB PRESS Vol.130
2022年8月24日発売
B5判/168ページ
定価1,628円
(本体1,480円+税10%)
ISBN978-4-297-13000-8
- 特集1
イミュータブルデータモデルで始める
実践データモデリング
業務の複雑さをシンプルに表現! - 特集2
いまはじめるFlutter
iOS/Android両対応アプリを開発してみよう - 特集3
作って学ぶWeb3
ブロックチェーン、スマートコントラクト、NFT