2015年5月25日月曜日

[C++] Codecov でコードカバレッジ

Codecov.io というカバレッジ系のサービスがあったので使ってみました。


Sign Up

Github , GitLab もしくは Bitbucket アカウントでサインアップします。
私の場合は、Github の公開リポジトリを使うので、Github で登録しました。
料金的には、公開リポジトリならば無料で使えます。

詳しくは、Pricing を参照してください。


リポジトリ追加
サインアップすると以下のような画面になるので、「Add your first repo」から追加したいリポジトリを選択します。

リポジトリを追加すると下のような表示が出ます。

トークンが表示されますが、今回は Travis-CI と連携させるので使いません。
次に設定の方を説明します。

Travis-CI の設定
設定の仕方は、上記画面の「Read our guides」をクリックすると開くガイドページに説明があります。
C/C++ のガイドもあるので、そのとおりに設定するだけです。
https://codecov.io/guide#c

C++ の場合、-coverage オプション付きでビルドして、gcov を実行した後に以下のコマンドを実行するだけです。
bash <(curl -s https://codecov.io/bash)
コマンドを curl で取得して実行するだけなのは、楽でイイですね!

iutest の場合
早速、iutest で試してみました。( iutest は自作の C++ テスティングフレームワーク です。 )
どういう設定をしたかは、.travis.yml と test/GNUMakefile を見てください。

計測結果はこちらから見れます。
https://codecov.io/github/srz-zumix/iutest?ref=master



現時点では、テストコードのカバレッジまで含まれてしまってますが、include ディレクトリに限れば Coveralls とほぼ同等の数値が取れてます。
フィルタリングとかはそのうち対応したいと思います。

Chrome Extension
Codedov には Chrome 拡張が用意されています。

これをインストールすると、Github に Codecov で集計したカバレッジが表示されるようになります。



バッジ/グラフを付ける
さて、ここまでできたら他のサービスと同様にバッジを付けたいですよね。
もちろん、Codecov でもバッジを付けることができます。

Features をクリックすると以下のようなメニューが出ます。

Badge という項目があるのでそこを開くと、バッジのフォーマットがそれぞれのスタイルごとに出ま。あとはこれを Readme なりに貼り付けるだけで OK です。


また、バッジの他に推移グラフも同様に付けることができます。
Features の Graph の項目を開くと、以下のようなページが開くのでバッジと同じようにテキストをコピーして貼り付けるだけで、グラフが表示できるようになります。



最後に
Codecov にはまだ他にも機能があります。詳しくは https://codecov.io/#features を見てください。

他のカバレッジ系 CI サービスだと Coveralls があります。
Coveralls は以前から iutest のカバレッジを取るために使ってました。その辺はブログにも書いてます。
ブログズミ: [C++] Coveralls でコードカバレッジ - その1
ブログズミ: [C++] Coveralls でコードカバレッジ - その2
個人的には、Coveralls の方が見やすいな~と思うのですが、 Codecov は導入が簡単だったのと Github へのプルリクエストコメント機能など多機能であることがメリットかな~と思いました。
Coveralls との比較は https://codecov.io/#features の下の方にも載ってます。

以上。

0 件のコメント:

コメントを投稿