google testのダウンロード
googletest - Google C++ Testing Framework - Google Project Hosting
からgoogletest本体を落としてくる.現時点でのバージョンは1.6.0になってる.gtest-1.6.0.zipってのをダウンロードできたら適当な場所に解凍.
gtest-1.6.0っていうディレクトリができるはず.
とりあえずそのディレクトリの読み取り専用属性を外しておきましょう.
Visual Studioでビルドしましょう
gtest-1.6.0\msvc\gtest.sln
をVisual Studio 2012 Express で開きます.このソリューションファイルがVisual Studio 2003だか2005だかで作ってあるのでアップグレードがどうのこうのって出てくるからアップグレードしましょう.颯爽とF7を押すだけです.
エラーいっぱい出るはず.なのでこちらを参考にヘッダファイルを修正します.
ブログズミ: Visual Studio 11 Beta で Google Test を使う
修正するのは
gtest-1.6.0\include\gtest\internal\gtest-port.h
というファイル.
修正後,ソリューションを開き直してビルド(F7)します.今度はビルド通るはず.では動作確認.
一番簡単な初めてのC++のテスト
Win32コンソールアプリケーションのソリューションを作って試してみます.
なんとなくWin32コンソールアプリケーションウィザードのアプリケーションの設定で,プリコンパイル済みヘッダーのチェックを外しておきます(よくわかってない).あとはデフォルト.
インクルードディレクトリやリンカの設定を行います.
プロジェクトの[プロパティ]
いいか, /MDd
じゃないぞ! /MTd
だからな!!間違えるな!!間違えるとこんなビルドエラーが発生するからな!!
error LNK2038: 'RuntimeLibrary' の不一致が検出されました。値 'MTd_StaticDebug' が MDd_DynamicDebug の値 'GtestExample.obj' と一致しません。
error LNK2005: "public: __thiscall std::_Container_base12::_Container_base12(void)" (??0_Container_base12@std@@QAE@XZ) は既に gtestd.lib(gtest-all.obj) で定義されています。
などなど……
で,設定終わったらこんな感じのコードをひとまず書いて,デバッグなしで実行(Ctrl+F5).
(゚д゚)ウマー