2013年1月29日火曜日

Visual Studio 2012 C++ Unit Test Framework をコマンドライン実行 + Jenkins

Visual Studio 2012 C++ Unit Test Framework でテストコードが書けるようになっても、
テストエクスプローラーで実行していたのでは自動化できない!

というわけで、自動化するためにコマンドライン実行をする方法を調べました。
ついでに、Jenkins で結果を集計する方法も調べています。

コマンドライン実行する方法
"%ProgramFiles%\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe"
を使います。

テストプロジェクトをビルドすると dll が作成されるので、
その dll パスを vstest.console.exe の引数に渡すと実行されます。

vstest.console.exe iutest_unittest.dll

その他のコマンドラインオプションは vstest.console.exe /? とすることで見ることができます。
または、MSDN にも載っています。

Jenkins で集計する方法
/logger オプションで結果の出力フォーマットを指定できます。
/logger:trx で Visual Studio テスト結果ファイル(TRX) で出力でき、
trx ファイルは MSTest plugin を使えば結果の集計ができそうです。


まずは、ビルド手順を追加して以下のようにテストを実行します。
vstest.console.exe iutest_unittest.dll /logger:trx

テスト結果は
./TestResults/${USERNAME}_${COMPUTERNAME} ${日付} ${時間}.trx
に出力されます。

次に、「ビルド後の処理の追加」から「Publish MSTest test result reposrt」を選択し、trx ファイルを集計するように設定します。


以上で設定は終わりです。


このようにテスト結果が集計されました。


2013年1月27日日曜日

iutest v1.3.0 をリリースしました

iutest v1.3.0 をリリースしました。

今回の変更点は主に
  • ライブラリビルド対応
  • Google Test モード使用時のエラーおよび非互換だった部分の修正
です。

2013年1月22日火曜日

Visual Studio 2012: C++ Unit Test Framework でブレークポイント

VS2012 の C++ Unit Test Framework ですが、仕事や個人で実運用はしていないのですが、検証とか実験とかお遊びとかで使ってたりします。

Visual Studio 2012 の C++ Unit Test Framework については、このへんを見てください。



で、今までずーーーーっとブレークポイントは使えないものだと思って、プリントデバッグしてましたorz



ちゃんと使えます

テスト エクスプローラーの[すべて実行]ではブレークポイントで停止しないのですが、
各テストを右クリックして出るメニューの[選択したテストのデバッグ(D)]から実行すると、ブレークポイントで停止します!

MSDN にも書いてありました。