NUnit の OpenCover レポートを作成する

無償のカバレッジ計測ツールがないぞーと思ったら OpenCover というのが存在したので NUnit の実行結果のレポートを生成するバッチをこちらのエントリ(.NETでのカバレッジ計測ツールOpenCover - Yasuo's Notebook)を参考にして作成しようと思います。

環境

手順

NuGetでReportGenerator、OpenCoverをインストール

両方ともNuGetで取得可能なのでインストールします。

NUnitをインストール

OpenCoverでカバレッジを計測するにはNUnitのコンソール実行版が必要なのでインストールします。
NUnit - Home

バッチファイルの作成

んで、レポート生成用バッチファイルを作成します。

rem NUnitのインストール先
set nunit_home=C:\Program Files (x86)\NUnit 2.6.1

rem OpenCoverのインストール先
set opencover_home=C:\Users\ユーザ名\Documents\Visual Studio 2012\Projects\PhotoShare\packages\OpenCover.4.0.804

rem ReportGeneratorのインストール先
set reportgen_dir=C:\Users\ユーザ名\Documents\Visual Studio 2012\Projects\PhotoShare\packages\ReportGenerator.1.6.0.0

rem パスの設定
set path=%path%;%opencover_home%;%reportgen_dir%\

rem 実行するテストのアセンブリ
set target_test=PhotoShare.Domain.Tests.dll

rem 実行するテストのアセンブリの格納先
set target_dir=C:\Users\ユーザ名\Documents\Visual Studio 2012\Projects\PhotoShare\PhotoShare.Domain.Tests\bin\Debug

rem カバレッジ計測対象の指定
set filters=+[PhotoShare*]*


rem OpenCoverの実行
OpenCover.Console -register:user -target:"%nunit_home%\bin\nunit-console.exe" -targetargs:"/nologo %target_test%"  -targetdir:"%target_dir%" -output:result.xml -mergebyhash  -filter:"%filters%"

rem レポートの生成
ReportGenerator "result.xml" html
pause

実行

実行すると、実行フォルダに html フォルダが作成されレポートが保存されます。

補足

MSTestの場合は参考エントリを見ればバッチのサンプルがありますよ!