浪漫の求道者

いけてると思った技術情報を綴るのです。

TOP > スポンサー広告 > GoogleTestがかなりいけてる その1TOP > テスト指向開発 > GoogleTestがかなりいけてる その1

スポンサーサイト   --.--.--

上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

GoogleTestがかなりいけてる その1   2009.05.17

テーマ:プログラミング - ジャンル:コンピュータ

[GoogleTest1.3.0を使ってみた]

Google C++ Testing Framework
http://code.google.com/p/googletest/

Googleのテストフレームワーク「GoogleTest」に去年の年末くらいから興味を持ち始めて使ってみた。
かなりいけてるのに日本語解説が少ないので、やった事をいろいろと書き出す。

 
なにができるのか
・マルチプラットフォーム対応
 Windows(VC)、Cygwin(gcc)、Linux、MacOS、WindowsCE、Symbian・・・
 
・テストコードの自動発見
   RUN_ALL_TESTS() で勝手にTEST(Hoge, hoge)と書いたコードを探索して実行してくれる
 (もちろん任意のテストだけ実行する、しないのオプションもあり)
 
・豊富なAssertion
 失敗(ASSERT)と警告(EXPECT)を使い分ける事ができる
 値の範囲テストはまじでいけてる
 浮動小数点の「ほぼイコール」や、文字列のイコール用のAssertion
 失敗を確認するテスト「DeathTest」がある(Windowsは1.3.0より)
 
・テスト結果のXML出力
 --gtest_output=xml のオプションでJUnit形式でXMLを出力できる
 CIツール「hudson」との連携も可能(1.3.1より対応予定)
 http://code.google.com/p/googletest/issues/detail?id=114
 
・開発が活発
 Google内で利用されている事もあり、機能がどんどん増えている
 昨年7月の1.0.0登場から、11月に1.2.0、この3月に1.3.0とどんどんバージョンがあがっている
 便利な機能がどんどん実装されている点がすばらしい
 

まずは導入

 なにはともあれ動かしてみる。手順はVCのみ解説。他の環境の人はきっと猛者なのでなんとでもなるだろう。

 ちなみに、いろんなVCバージョンで試した気がするが、今回動作確認したのは VC2005 Express Edition。

1.公式サイトのDownloasからダウンロード。(2009/05/16では1.3.0が最新)
 http://googletest.googlecode.com/svn/trunk/
 で開発中最新リポジトリ

2.gtest-1.3.0 の中に msvc フォルダがあるので開いて、gtest.sln を実行
 
VisuallStudio変換ウィザードが走るので適当にOK。

3.gtest と gtest_main プロジェクトをビルド
 Debug、Release両方で。gtestを最初にビルド。

4.テストしたいプロジェクトにインクルードパスとリンクするライブラリを追加
 追加のインクルードディレクトリ → include\gtest
  追加の依存ファイル → gtest.lib, gtest_main.lib (Debugならgtestd.lib,gtest_maind.lib)

5.mainとかに以下の2行を追記
 testing::InitGoogleTest(&argc, argv);
 RUN_ALL_TESTS();

6.どこかにテストコードを書く(勝手に見つけてくれる)
 #include <gtest/gtest.h>
    TEST(firstTest, abs)
    {
        EXPECT_EQ(1, abs( -1 ));
        EXPECT_EQ(1, abs( 1 ));
    }

7. ビルド→実行でおしまい!
 イカス!!!

 

COMMENT

管理者にだけ表示を許可する

トラックバック

トラックバックURL:
    (copyボタンはIEのみ有効です)
«  | HOME |  »