kaakaa Blog

この世は極楽 空にはとんぼ

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)をひとつ上のディレクトリに移動し、準備完了。

これでとりあえず実行することはできました。