2016年8月21日日曜日

TeamCity上からSonarQube にテスト結果を含める手順 for OpenCover

概要

TeamCityのBuild Stepから、VSTestと、OpenCoverで、SonarQubeにテスト実施状況とカバレッジを表示させる手順。

前提

  • TeamCity上から、SonarQube の解析の実行までできる状態であること(こちらの投稿で、最低限の手順を記載済)
  • OpenCoverをダウンロード済であること(zipを任意の場所に解凍でOK)
  • 対象のBuild Configuration にて、Version Control Settingsの「Clean build」が有効になっていること(毎回溜まっていくテスト結果の処置に困るため)

手順

  1. 対象のBuild Step の編集画面を開く
  2. テスト実行を行うBuild Step を追加する。
テスト実行のBuild Step は、ビルドより後、SonarQube の解析終了コマンドより手前に配置する。
テスト実行のBuild Step は以下のような雰囲気:
  1. SonarQube の解析開始側のBuild Step に、以下コマンドライン引数を追加する
/d:sonar.cs.vstest.reportsPaths="TestResults\*.trx"
この時点で、SonarQube のDashBoard に、テスト結果が表示されるようになる。

  1. OpenCover のBuildStepを追加する。
実行コマンド:
<OpenCover解凍フォルダ>\OpenCover.Console.exe

コマンド引数:
-output:opencover.xml
-register:Path32
“-target:%teamcity.dotnet.vstest.14.0%" -targetargs:SimpleClassLibraryTest\bin\Release\SimpleClassLibraryTest.dll

※OpenCoverのBuildStep は、ビルドより後、SonarQube の解析終了コマンドより手前に配置する。
※-targetargs の中身は、テスト対象のDLL。対象の内容に応じて、書き換え
  1. SonarQube の解析開始側のBuild Step に、以下コマンドライン引数を追加する
/d:sonar.cs.opencover.reportsPaths="opencover.xml"
  1. ※”overcover.xml”は、OpenCoverの実行コマンドの”-output”に指定したファイル名
  2. 最終的なBuild Steps:

実行結果

SonarQube 側のプロジェクト毎のホーム画面、ダッシュボードで、カバレッジとテスト結果の確認が行えるようになる。
プロジェクトホーム画面より抜粋:
ダッシュボード画面より抜粋:
補足:
※TeamCity側で何もエラーが発生していないのに、コードカバレッジが上手く表示されていない場合には、該当のビルドのBuild Logを、TeamCity上で確認してください。Coverageを実行しているBuild Stepで、何らか起きているはず。
※上手くいかない場合は、コマンドライン引数の”-register:Path”部分を、”-register:User”か”-register:Path64”かに変更で、上手く行く…かもしれない

カバレッジが通っていないコードなども確認可能:
赤いバーが表示される:


参考ページ:


以上。

0 件のコメント:

コメントを投稿