LoginSignup
29
30

More than 5 years have passed since last update.

GoogleTestを使って単体テストを行う準備をする。

Last updated at Posted at 2014-05-17

GoogleTestってなに?

Googleが作成したC/C++用のxUnit系単体テストフレームワーク
http://googletest.googlecode.com/

GoogleTestの何がいいの? ※個人的な所感

個人的にC/C++で単体テスト書くならGoogleTest一択です

  • 他のC/C++用xUnitライブラリよりmain()など簡単に記載できる
  • stdoutstderrを簡単にキャプチャすることができる
  • exit()などのデステストも標準サポート
  • XMLで結果を出力できるのでJenkinsなどに対応している
  • gcov/gcovrと連携すればカバレッジの可視化も可能
  • OSS。ここまで出来て無料

これから作成するライブラリについて

libgtest.a : google Testのテスト関数が全て入っているライブラリ
libgtest_main.a : 全てのテストケースを呼び出して実行するmain()関数のオブジェクト。#実行時の引数で実行テストケースを指定することも可能。

基本的な使い方

以下URLなどを参照してテストファイルを作成する #Makefileの作成方法は後日記載予定

Google Test ドキュメント日本語訳 » 入門ガイド
http://opencv.jp/googletestdocs/primer.html

後述で作成したライブラリを利用してテスト実行オブジェクトを作成する

g++ -I${GTEST_DIR}/include path/to/your_test.cpp  path/to/targetFunction.cpp  libgtest.a libgtest_main.a -o your_test

出来上がったyour_testを実行する

コンパイル手順

[budougumi0617@18:53:49] pwd                     [~/tmp]
/home/budougumi0617/tmp
[budougumi0617@18:49:17] wget http://googletest.googlecode.com/files/gtest-1.6.0.zip
[budougumi0617@18:53:51] unzip gtest-1.6.0.zip   [~/tmp]
[budougumi0617@18:53:51] cd gtest-1.6.0          [~/tmp]
[budougumi0617@18:32:42] ./configure             [~/tmp/gtest-1.6.0]
[budougumi0617@18:33:31] export GTEST_DIR=~/tmp/gtest-1.6.0   
[budougumi0617@18:34:06] g++ -I${GTEST_DIR}/include -I${GTEST_DIR} -c ${GTEST_DIR}/src/gtest-all.cc
[budougumi0617@18:34:28] ar -rv libgtest.a gtest-all.o   
r - gtest-all.o
[budougumi0617@18:37:41] cd make                 [~/tmp/gtest-1.6.0]
libgtest.a  Makefile
[budougumi0617@18:37:46] make gtest_main.o       [~/tmp/gtest-1.6.0/make]
g++ -I../include -I.. -g -Wall -Wextra -c \
            ../src/gtest_main.cc
[budougumi0617@18:37:53] ar -rv libgtest_main.a gtest_main.o 
ar: creating libgtest_main.a
a - gtest_main.o
[budougumi0617@18:38:29] cp libgtest_main.a ../  [~/tmp/gtest-1.6.0/make]
[budougumi0617@18:39:01] cd ..                   [~/tmp/gtest-1.6.0/make]
[budougumi0617@18:39:04] ls                      [~/tmp/gtest-1.6.0]
aclocal.m4      codegear       CONTRIBUTORS  lib              make         README   xcode
build-aux       config.log     COPYING       libgtest.a       Makefile     samples
CHANGES         config.status  fused-src     libgtest_main.a  Makefile.am  scripts
cmake           configure      gtest-all.o   libtool          Makefile.in  src
CMakeLists.txt  configure.ac   include       m4               msvc         test

#以上でライブラリファイル完成!Sampleメソッドは後日記載予定

29
30
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
30