OpenCoverをJenkinsとともに使用する

何のことは無いチラシの裏。

JenkinsでOpenCoverからNUnitを起動して、単体テストとそのカバレッジの測定を行い、OpenCoverの出力をReportBuilderでHTMLに変換するという手順。

JenkinsでOpenCoverとNUnitをx64環境で使用する際のMSBuildの設定例

/P:Configuration=Release /P:Platform="Any CPU" /P:DebugSymbols=true /P:ReferencePath=\"C:\Program Files (x86)\NUnit 2.6\bin\framework\"

バイナリはAny CPU指定、PDBは作成する、NUnitにリファレンスを通すといったところ。とりあえずAny CPUではOpenCoverで失敗している。(が、再調査、チャレンジは必要かも)(2012/02/28 19:55 修正。Any CPUで問題なし)

Jenkins用OpenConverの設定例。WindowsのバッチコマンドとしてMSBuildの後にビルドJOBを追加。

cd /d %WORKSPACE%
del result.xml
del TestResult.xml
del /s /q .\html\*.*
"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -register -target:"C:\Program Files (x86)\NUnit 2.6\bin\nunit-console.exe" -targetargs:"%WORKSPACE%\HokurikuDemo\TestHokurikuDemo\bin\x64\Release\TestHokurikuDemo.dll /framework=net-4.0" -targetdir:"%WORKSPACE%\HokurikuDemo\TestHokurikuDemo\bin\x64\Release" -filter:"+[HokurikuDemo]*" -output:result.xml

"C:\bin\reportgen\bin\reportgenerator" "result.xml" .\html

copy "%WORKSPACE%\HokurikuDemo\TestHokurikuDemo\bin\x64\Release\TestResult.xml" "%WORKSPACE%"

これで、WORKSPACEの下にHTMLというディレクトリができ、そこにOpenCoverの結果がHTMLで保存される。

こつ的なところはOpenCover.Console.exeとちゃんと拡張子まで指定するのと、その-registerオプションはそのまま:以降の指定はしないこと。

ポストビルドの設定で、HTML Publisherプラグインを使って、カバレッジデータのHTMLがプロジェクトに表示されるように設定している。

下の方はNUnitの設定で、テスト結果に使用するファイルを指定している。

 

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください