Google TEST でつまったメモ
ぼちぼち C++ を再びやろうかな、と思ってテストフレームワークを調べると Google Test ってのがいいらしいので、インストールした。そのメモ
1. コンパイル
とりあえず、cmake を入れて、こいつでビルドした。g++ で直接作成してもいいような
- aptitude install cmake
- unzip gtest-1.6.0.zip
- cd gtest-1.6.0
- mkdir build
- cd build
- cmake
- make
2. テストを書いてみる
#include "gtest/gtest.h" int main(int argc, char* argv[]) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } int factorial(int n) { return 0; } TEST(FirstTest, factorial) { EXPECT_EQ(1, factorial(0)); }
で
g++ FactorialTest.cpp -o factorial_test -I$GTEST_DIR/include -L$GTEST_DIR/build -lgtest -lpthread
とするとコンパイルできるので、実行するとテストできる。
うーん。コンパイル対象のファイル(FactorialTest.cpp)を g++ の引数の最後にまわしたりすると、リンケージエラーになるな。常識なのかもしれんけど、そんなことすら知らんのが今の状態だ。
テストを起動する main プログラムはいつも同じなので gtest 側で libgtest_main が用意されている
g++ FactorialTest.cpp -o factorial_test -IGTEST_DIR/include -L$GTEST_DIR/build -lgtest -lgtest_main -lpthread
とすれば FactorialTest.cpp から main() を削除できてテストコードに集中できる。