2011年10月28日

googletestを試してみる

VisualStudioでのunit testフレームワークのgoogletestの導入方法。

googletest公式:http://code.google.com/p/googletest/
googletest日本語ドキュメント:http://opencv.jp/googletestdocs/index.html
環境:Visual Studio 2005 Professional Edition

1.ダウンロード


http://code.google.com/p/googletest/downloads/listから落としてくる。 私は、gtest-1.5.0を落としました。

2.インストール


「gtest-1.5.0/msvc/gtest.sln」を起動。変換ウィザードが出たら、「完了」でソリューションを使用しているバージョンに変換する。 その後
・gtest
・gtest_main
をDebug,Releaseでビルド。 ビルドにエラーがなければ、「gtest-1.5.0/msvc/gtest/debug,release」内にそれぞれ、
・gtest.lib
・gtest_main.lib
が出来ているはず。コイツがgoogletestライブラリになります。

Visual Studioの設定


「新規作成→プロジェクト→Win32コンソールアプリケーション」でプロジェクトを作ったら、下記の設定を行う。

「プロジェクトを選択して右クリック→プロパティ:構成プロパティ」で下記を設定する。(Debug,Release両方)
・libの設定
 「リンカ:全般:追加のライブラリディレクトリ」で、『gtest-1.5.0/msvc/gtest/debug』を追加
 「リンカ:入力:追加の依存ファイル」で、『gtestd.lib gtest_maind.lib』を追加
・includeパスの設定
 「C/C++:全般:追加のインクルードディレクトリ」で、『gtest-1.5.0/include』を追加
・ランタイムライブラリ設定
 「C/C++:コード生成:ランタイム ライブラリ」で、『マルチスレッド デバッグ(/MTd)』を選択

これで設定終わり。

テストコード書いてみる



// googletestTest.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//
#include "stdafx.h"
#include

int _tmain(int argc, _TCHAR* argv[])
{
testing::InitGoogleTest(&argc, argv);
RUN_ALL_TESTS();

getchar();
return 0;
}

int add(int a,int b){return a+b;}

TEST(googletestSample, Assert) {
EXPECT_EQ(add(1,2), 3); //1+2は3なので正解
EXPECT_EQ(add(1,2), 4); //1+2は3なのでエラー
}

実行結果はこうなります。

[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from googletestSample
[ RUN ] googletestSample.Assert
d:googletesttest\googletesttest.cpp(19): error: Value of: 4
Expected: add(1,2)
Which is: 3
[ FAILED ] googletestSample.Assert (0 ms)
[----------] 1 test from googletestSample (0 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (0 ms total)
[ PASSED ] 0 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] googletestSample.Assert


1 FAILED TEST

緑と赤に色変わっているのは、見易く私が書いてるのではなく、コンソール上でこういう色ででます。赤い色があればエラーがあると一発で分かります!!コレ超便利。

テストケースの書き方的には、

TEST(テスト名,Assert)

で定義すれば勝手にテストケースに追加してくれて、実行してくれます。超便利!!

googletestイケテル!!!


posted by purigen at 11:00| Comment(0) | TrackBack(0) | C++ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。