Google Testを使ってみる [Google Test]
C++のテストフレームワークとして,Google Testというのがあるので使ってみる.
Google Testはいろんなプラットフォームに対応しているらしい.例えばLinuxとかMac OS X,あとWindowsとかCygwinでも使えるらしい.
で,これをうちのビルドマシン上で使ってみる.ビルドマシンのOSはubuntu 12.04の64bit版だ.
では,まずは適当なディレクトリを作成し,Google Testをダウンロード,展開してやる.
そしたらライブラリを作成してやる.作成方法の詳細は展開先のREADMEに書かれてるので一度ざっと目を通しとくといいかも.あと,この作業でCMakeを使うので先にインストールしておく(使わなくてもできるけど).
というわけでCMakeのインストール
ライブラリ作成
これで,「libgtest.a」と「libgtest_main.a」が作成されるはずだ.実際テストするときはこのライブラリをリンクして使うことになる.
そしたら,試しにサンプルをビルドして,テストを実行してみる.
そうすると,以下の実行可能なファイルが作成されるはずだ.
試しにsample1_unittestを実行してみる.
そうするとテストが実行されて以下のような結果が表示されるはずだ.
実際には色もついて表示される.で,ここまで確認できればOK.
次のステップはサンプルじゃなくて自分のコードをテストすることになるのだが,それはまた次回.
Google Testはいろんなプラットフォームに対応しているらしい.例えばLinuxとかMac OS X,あとWindowsとかCygwinでも使えるらしい.
で,これをうちのビルドマシン上で使ってみる.ビルドマシンのOSはubuntu 12.04の64bit版だ.
では,まずは適当なディレクトリを作成し,Google Testをダウンロード,展開してやる.
cd ~/ mkdir googletest cd googletest/ wget http://googletest.googlecode.com/files/gtest-1.6.0.zip unzip gtest-1.6.0.zip
そしたらライブラリを作成してやる.作成方法の詳細は展開先のREADMEに書かれてるので一度ざっと目を通しとくといいかも.あと,この作業でCMakeを使うので先にインストールしておく(使わなくてもできるけど).
というわけでCMakeのインストール
sudo apt-get install cmake
ライブラリ作成
cd ~/googletest/gtest-1.6.0/ mkdir lib cd lib/ cmake ../ make
これで,「libgtest.a」と「libgtest_main.a」が作成されるはずだ.実際テストするときはこのライブラリをリンクして使うことになる.
そしたら,試しにサンプルをビルドして,テストを実行してみる.
cd ~/googletest/gtest-1.6.0/ mkdir build_sample cd build_sample/ cmake -Dgtest_build_samples=ON ../ make
そうすると,以下の実行可能なファイルが作成されるはずだ.
sample1_unittest sample2_unittest sample3_unittest sample4_unittest sample5_unittest sample6_unittest sample7_unittest sample8_unittest sample9_unittest sample10_unittest
試しにsample1_unittestを実行してみる.
./sample1_unittest
そうするとテストが実行されて以下のような結果が表示されるはずだ.
Running main() from gtest_main.cc [==========] Running 6 tests from 2 test cases. [----------] Global test environment set-up. [----------] 3 tests from FactorialTest [ RUN ] FactorialTest.Negative [ OK ] FactorialTest.Negative (0 ms) [ RUN ] FactorialTest.Zero [ OK ] FactorialTest.Zero (0 ms) [ RUN ] FactorialTest.Positive [ OK ] FactorialTest.Positive (0 ms) [----------] 3 tests from FactorialTest (1 ms total) [----------] 3 tests from IsPrimeTest [ RUN ] IsPrimeTest.Negative [ OK ] IsPrimeTest.Negative (0 ms) [ RUN ] IsPrimeTest.Trivial [ OK ] IsPrimeTest.Trivial (0 ms) [ RUN ] IsPrimeTest.Positive [ OK ] IsPrimeTest.Positive (0 ms) [----------] 3 tests from IsPrimeTest (0 ms total) [----------] Global test environment tear-down [==========] 6 tests from 2 test cases ran. (1 ms total) [ PASSED ] 6 tests.
実際には色もついて表示される.で,ここまで確認できればOK.
次のステップはサンプルじゃなくて自分のコードをテストすることになるのだが,それはまた次回.
タグ:Google Test CMAKE