Google Testの導入まで
備忘録として。
ブログズミ: Google Testの検索結果
TDD Boot Camp 東京 for C++ に参加 & 講演してきました #tddbc - Natural Software
準備
下の@kaorunさんのリンクの方が簡単そうなので、そっちでやってみることに。
BitBucketからzipをダウンロードして解凍。
解凍後のディレクトリの名前を"google_test_and_mock"に変更して、Cドライブ直下へ。
これからはテストを実行するプロジェクトにgoogle_test_and_mock/gtest_gmock.propsを適用していけば、google testを実行できるはず。
propsの適用方法はコチラ。
方法 : プロパティ シートからプロジェクト設定を継承する
ビルド
プロジェクト新規作成して、上記リンクの方法でprops適用してビルドかけたらエラー。
error MSB3073: コマンド "c:\users\kaakaa_hoe\documents\visual studio 2012\Projects\KaorunTest\Debug\KaorunTest.exe :VCEnd" はコード 9009 で終了しました。
これはgtest_gmock.propsで
$(TargetDir)$(TargetFileName)
という記述があり、この$(TargetFileName)の示すパスに空白が入っていたのが原因でした。
なので、下記のよう修正。
"$(TargetDir)$(TargetFileName)"
これでビルドが通るようになりました
実行
ビルド時のエラーを回避し、下記のコードで実行確認。
#include <gtest/gtest.h> TEST( TestSample, add ) { EXPECT_EQ( 0, 1 ); }
実行すると、エラー。
「fatal error LNK1112: モジュールのコンピューターの種類 'X64′ は対象コンピューターの種類 'x86′ と競合しています。
落としてきたgmockモジュールがX64環境でビルドされていることが原因らしい。
なので、gmockのソリューションをX86環境でビルドすることに。
google_test_and_mock\gmock-1.6.0\msvc\2010\gmock.slnをVisual Studioで開き、各プロジェクトの設定からプリプロセッサの定義に「_VARIADIC_MAX=10」を追加。
c++ - C2977: 'std::tuple' : too many template arguments (MSVC11) - Stack Overflow
そして、ソリューションのリビルド。
google_test_and_mock\gmock-1.6.0\msvc\2010\Debug\Win32に生成された2つのlibファイル(gmock.lib, gmock_main.lib)をひとつ上のディレクトリに移動し、準備完了。
これでとりあえず実行することはできました。