Google Testの導入
Googleが公開するC/C++用Testing Framework "Google Test"の導入
- Google Test の入手&ちょっと準備
wget http://googletest.googlecode.com/files/gtest-1.7.0.zip unzip gtest-1.7.0.zip cd gtest-1.7.0 mkdir lib
前準備として"GTEST_ROOT/lib"ディレクトリを作っておく
- gtestライブラリのビルド
自分でコンパイル&アーカイブしてもいいのだけどcmakeが用意されているので上記で作成したlibディレクトリ内で
cmake ../ make
どうってことないですね(cmakeよく分かってません)。
- 使い方(sampleが通ることを確認しておく)
■1つずつビルド
GTEST_ROOT/samples
g++ -I../include -L../lib sample1_unittest.cc sample1.cc -lgtest -lgtest_main
memo:
- I../includ : gtest.h等関連ヘッダーへのインクルードパス
- L../lib : gtestライブラリへのパス
- lgtest : libgtest.a のリンク
- lgtest_main : 自分でmain関数を書かない場合必要
■とりあえず全てのサンプルをビルド
ビルド用のディレクトリを準備(GTEST_ROOT/build_sample)
cmake -Dgtest_build_samples=ON ../ make
で全てのサンプルのビルドが自動で行われる。
- 自分で書いたコードもテストしてみる
// mySample.cc int add(int a, int b) { return a+b; } // mySample.h int add(int a, int b); // test_mySample.cc #include "gtest/gtest.h" #include "mySample.h" TEST(TestAdd, add1) { ASSERT_EQ(3, add(1, 2)); }
ちょっと雑だけどベタにコンパイル
g++ -IGTEST_ROOT/include mySample.cc test_mySample.cc -LGTEST_ROOT/lib -lgtest -lgtest_main
(GTEST_ROOTは各環境で置き換え)
[==========] Running 1 test from 1 test case. [----------] Global test environment set-up. [----------] 1 test from TestAdd [ RUN ] TestAdd.add1 [ OK ] TestAdd.add1 (0 ms) [----------] 1 test from TestAdd (0 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test case ran. (0 ms total) [ PASSED ] 1 test.