カバレッジ測定とCIとの連携
(3)
カバレッジとは
カバレッジとは、
カバレッジにはどこまで厳密に測定するかによって複数の種類がありますが、
Devel::Coverによるローカル環境でのカバレッジの測定
次は、
Devel::Coverとは
Devel::Coverを使うと、Devel::Coverはcpanmコマンドでインストールできます。
$ cpanm --quiet --notest Devel::CoverDevel::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 codecovbefore_ステップでは、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

