探すとたくさんの情報があり、ドキュメントの翻訳をされているかたも少なくありませんが、自分で使うためにまとまった形にしておくと便利だと思い立ち、まとめてみることにしました。
内容は“GitHub - google/googletest: Google Test”から、ドキュメントとしてはその基礎と応用を元にしています。
導入
まずgoogletestのサイト(http://code.google.com/p/googletest/)からファイルを入手します。2009/10/02現在の最新バージョンは1.3.0です。
.tar.bz2形式、.tar.gz形式、zip形式の圧縮ファイルが用意されているので適当なファイルをダウンロードしてください。
インストールで手っ取り早いのは、そのままビルドしてインストール。
./configure make sudo make install
- (2010/06/10追記:Version1.5.0では推奨するビルドの方法が変更になりました。詳しくは「googletest1.5.0の使い方・その1:ビルドする - エンジニアのソフトウェア的愛情」を参照してください)
またプロジェクトファイルが用意されているので、それぞれの環境でビルドすることもできるようです。
環境 | フォルダ |
---|---|
Microsoft Visual Studio | msvc/ |
Xcode (Mac OS X) | xcode/ |
Scons | scons/ |
Borland C++Builder | codegear/(※1) |
※1:ドキュメントには記載があるのですが、少なくとも現在のバージョンには含まれていないようです。
使ってみる
googletestを使った簡単なコードを上げておきます。詳細は今後解説していくつもりです。
#include <gtest/gtest.h> int add(int x, int y) { return x + y; } TEST(AddTest, Add1) { EXPECT_EQ(1, add(1, 0)); EXPECT_EQ(1, add(0, 1)); EXPECT_EQ(2, add(1, 1)); } int main(int argc, char* argv[]) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }
googletestを利用するには、gtest/gtest.h
をインクルードします。
$ g++ -o sample1 sample1.cpp -lgtest
libgtestをリンクするように指定します。
実行結果。
[==========] Running 1 test from 1 test case. [----------] Global test environment set-up. [----------] 1 test from AddTest [ RUN ] AddTest.Add1 [ OK ] AddTest.Add1 [----------] Global test environment tear-down [==========] 1 test from 1 test case ran. [ PASSED ] 1 test.
テストの実行時にオプションを指定することもできます。
これらも順次解説していく予定です。