Xcode6でGoogle Testを使う

  • 12
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

TL;DR

http://bitrage.de/wp/google-test-with-xcode-6-and-c11
こっちのほうが元情報で、画像付きで分かりやすい

準備

  1. Downloads - googletest から1.7.0をダウンロード
  2. 任意のツールでzipを解凍して、gtest-1.7.0/xcode/gtest.xcodeprojを開く
  3. プロジェクトナビゲーターでgtestを選択して、gtest-frameworkBuild Settingsを開く
    • C++ Language DialectGNU++11 [-std=gnu++11]に変更
    • C++ Standard Librarylibc++(LLVM C++ standard library with C++11 support)に変更
    • OS X Deployment TargetCompiler Defaultに変更
  4. gtest-frameworkをビルドする(Cmd+B)
  5. プロジェクトナビゲーターのProductsにビルドされたフレームワークが在るので、altキーを押しながら任意のフォルダにドラッグアンドドロップする
  6. googletestを使いたいXcodeプロジェクトにテスト用のCommand Line Toolターゲットを追加する
    • OS X -> Applicationにある
    • LanguageC++
  7. テスト用ターゲットのBuild Phases -> Link Binary With Libraries5.でドラッグアンドドロップしたフレームワークを追加する
    • +マーク押すか、Finderからドラッグアンドドロップ
  8. メニューバーからProduct –> Scheme –> Tests and then Product –> Scheme –> Edit Schemeを選択
  9. テスト用ターゲットを選択してRunEnvironment VariablesDYLD_FRAMEWORK_PATHというキーを追加する
    • Valueは7.で追加したフレームワークがあるpath
  10. テスト用フレームワークのmain.cppmain()関数の引数を変更する
    • int main(int argc, const char * argv[]) -> int main(int argc, char * argv[])
      • constを外す
      • はずさないとgtestのinitが面倒
  11. 準備完了!!!!!!!!!!!!!!!!!!!!!!!!

使ってみる

テスト対象のターゲットに下記のようなコード追加する

// calc.h
class calc {
public:
    template<class T>
    static T add(T a, T b) {
        return a + b;
    }
};

test書く

#include "gtest/gtest.h"
#include "calc.h"


TEST(calc, add) {
    EXPECT_EQ(calc::add(1, 2), 3);
    EXPECT_NE(calc::add(1, 1), 3);
}

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

雑にmain.cppに書いたけどクラスとかに対応するヘッダファイル作って、そこにテスト書いたほうがいいと思う。
テスト用のターゲットにヘッダファイル追加して、テスト書いたらOK。

終わり。

参考