Eclipse CDTを使ったMacでのgoogle testの環境構築

 6月はじめのTDDBC大阪向けの資料です(6/2、6/3にて大阪でTDD Boot Camp大阪<http://atnd.org/events/28762>が開催され、自分はそこでTAを担当する予定です。参加キャンセル等で参加できる余地もあるので、興味ある方はぜひ)。
 TDDBC大阪では、C++のテスティングフレームワークgoogle testが選択されそうなので、日本語資料が少なげなMac×Eclipse CDTでの環境構築方法を、今回参考情報としてまとめます。

Eclipse CDTを使ったMacでのgoogle testの環境構築

1. XCodeのインストール

 コンパイラ等を確保するため、App Store等でXCodeをインストールします。

2. EclipseとCDTをインストール

 公式サイト等でEclipseとCDTをダウンロードし、使用可能にしておきます。初心者の方はEclipse、CDT、日本語化がセットになったPleiadesが無難かもしれません。

3. google testのダウンロード

 公式サイトから最新版のgoogle testをダウンロードします。

4. gtest_mainのビルド

 Macのターミナルで、google testを解凍したディレクトリにあるmakeディレクトリに移動します。そこで「make」コマンドを実行して、google testのライブラリファイル「gtest_main.a」をビルドします。そしてその「gtest_main.a」を「libgtest_main.a」とリネームしておきます。

5. テスト対象やテストを書くプロジェクトの作成

 2.で構築したEclipseにて、適宜の場所でテストコードを書くプロジェクトを作成します。プロジェクトはとりあえず「C++ Project」の「Hello World C++ Project」にします。またToolchainsは「MacOSX GCC」を選択します。

6. ライブラリとヘッダの確保

 5.で作成したプロジェクトディレクトリに、「lib」ディレクトリを新規作成。そこに4でビルド&リネームした「libgtest_main.a」を置きます。
 また同じくプロジェクトディレクトリに、google testを解凍したディレクトリにある「include」ディレクトリをコピペします。

7. ライブラリのリンクとインクルードパスの設定

 EclipseのProject Properties(Project ExplorerでProjectを右クリック→Properties)にて、以下の設定を行います。

  • MacOS X C++ LinkerのLibrariesにて、
    • Libraries(-l)に「gtest_main」を追加
    • Library search pash (-L)に「"${workspace_loc:/${ProjName}/lib}"」を追加(あるいは6.で作成した「lib」ディレクトリを手動追加)
  • GCC C++ Compilerにて、
    • IncludesのInclude paths (-l)に「"${workspace_loc:/${ProjName}/include}"」を追加(あるいは6.でコピペした「include」ディレクトリを手動追加)
8. 実行

 あとはHello Worldのひな形となっているmain()関数を、以下のようなコードで上書きすれば、google testが実行されます。

#include <gtest/gtest.h>

using namespace std;

int main(int argc, char **argv)
{
  ::testing::InitGoogleTest(&argc, argv);
  return RUN_ALL_TESTS();
}