2015/10/07

GitHub + Slather + TravisCI + Codecov.ioでSwiftのコードカバレッジを取る

Xcode 7からSwiftでのコードカバレッジが採れるようになりましたので、Travis CI上でSlatherを実行することでカバレッジデータを取得して、それをCodecovに送るようにします。

本エントリを作成するにあたって、次の記事が大変参考になりました。

2015.10.16追記

Codecov.ioはslatherなしでもカバレッジ取得が可能なので、本文中のSlatherに関する記述を削除

tl;dr

  1. CodecovにGithubリポジトリを追加

  2. Xcode上でテストするスキームのGather coverage dataにチェック

  3. .travis.ymlafter_successセクションに次のような記述を追加

    after_success:
    - bash <(curl -s https://codecov.io/bash)
    
  4. バッジやグラフの追加

XcodeのCode Coverageの設定

Edit Scheme… → Test → Gather coverage dataにチェックを入れておきます。

これにチェックを入れた上で、メニュー → Edit → Show Code Coverageにもチェック入れて、Xcodeでテスト実行すると、とりあえずXcode上でカバレッジを見ることができます。

Codecov.ioでのリポジトリ準備

Codecov側でリポジトリを扱えるようにします。必要なことはCodecovのページでAdd new repository to Codecovをクリックしてリポジトリを選ぶだけです。

リポジトリを選択すると次のようなページが表示されますが、Travisと連携する場合には何もする必要はありません。

Codecov.ioへのガバレッジデータの送信

あとは、.travis.ymlに次のコードを追加するだけです。

after_success:
- bash <(curl -s https://codecov.io/bash) # この行を追加

これでTravisでビルドされたときに、成功ならカバレッジのデータがCodecovに送信されて、結果が見えるようになります。

非ガバレッジコードの指定

カバレッジを無視したいソースファイルはCodecov.ioのGUIで指定することができます。 なぜか、Slatherで--ignoreを指定しても意味がなかったので、今回はCodecov.ioで設定しました。

README.mdへのバッジの追加など

あとは、バッジをREADMEに貼りつけたり、

[![codecov.io](http://codecov.io/github/safx/yavfl/coverage.svg?branch=master)](http://codecov.io/github/safx/yavfl?branch=master)

GitHubやBitbucketからカバレッジが見えるようにプラウザ拡張を導入するとよいでしょう。

関連リンク

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。