プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2017/12/08

[C#] AppVeyor と Codecov でカバレッジを計測する

event_note2017/12/08 13:38

C# で作成した .NET アプリケーションのコードカバレッジを、AppVeyor と Codecov で計測します。

環境

  • Visual Studio 2017

事前準備

C# の場合、コードカバレッジ自体は OpenCover を使って計測し、Codecov にはレポートを渡すだけになります。
OpenCover を使用したカバレッジ計測については以下の記事を参考にしてください。

また、AppVeyor と Codecov へのリポジトリの登録は済んでいる前提です。

実行方法

Codecov へのレポート出力について、C# でのやり方は以下で説明されています。

やり方はいろいろあるみたいですが、主に codecov というツールのインストール方法が違うようです。

とりあえず作成した appveyor.yml は以下です。

image: Visual Studio 2017
configuration: Release
before_build:
  - nuget restore
build:
  parallel: true
  project: MyApplication.sln
test_script:
  # OpenCover でカバレッジを計測
  - OpenCover.bat vstest.console.exe "coverage.xml"
  # Codecov へカバレッジ結果を渡す
  - "SET PATH=C:\\Python34;C:\\Python34\\Scripts;%PATH%"
  - pip install codecov
  - codecov -f "coverage.xml"

OpenCover でのカバレッジ計測はローカルでもできるようにバッチファイル化しています。
OpenCover.bat の内容自体は以前の記事を参考にしてください。

第1引数で vstest のパスを指定しますが、AppVeyor ではパスが設定されているのか、vstest.console.exe だけで実行可能です。
第2引数は出力ファイル名です。

codecov は NuGet でもインストール可能ですが、ローカルで実行しないのであればわざわざ NuGet でインストールするメリットもないかなと思うので、Python でインストールして実行しています。