NUnit の OpenCover レポートを作成する
無償のカバレッジ計測ツールがないぞーと思ったら OpenCover というのが存在したので NUnit の実行結果のレポートを生成するバッチをこちらのエントリ(.NETでのカバレッジ計測ツールOpenCover - Yasuo's Notebook)を参考にして作成しようと思います。
環境
- Windows8
- Visual Studio 2012
- NUnit 2.6.1
- ReportGenerator.1.6
- OpenCover.4.0.804
手順
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の場合は参考エントリを見ればバッチのサンプルがありますよ!