2011年5月7日土曜日

CppUnitインストール

分け合って、会社でTDDしようと思い、TecMatrix社が販売している静的+動的解析ツール「C++Test
を使っているが、どうも動作が安定しない。

以下に、VC6.0版CppUnitとの比較結果を記載する。





■C++Test実行環境

1.Windows2008サーバ(Corei7×2個、メモリ3GB)

2.Eclipse 3.5.2 Galileo(C++オールインワン版)
→Eclipseにプラグインして使用


■C++Testの素晴らしい点

1.テストを自動生成してくれる

2.テスト時に、カバレッジを同時収集できる

3.テストケースを自動作成してくれる

■C++Testの課題

1.テスト実行時間が長い
→3件のテストを実行するのに、20秒掛かる。
→テスト時、実行モジュールを毎回アナライズしているらしく、その時間が殆どっぽい。

2.C++Testのコンパイルエラーが出力されない
→テストプログラムと製品プログラムどちらに不具合があるか分からない

3.テストできない原因を教えてくれない
→突然、テストが実行できなくなった。
→しかし、その原因をツールが教えてくれない。


「テスト時間が長い」は、平行して別の事をやれば済むが、「エラー箇所が分からない」は致命的。慣れないツールで手間が掛かる上に、原因解析に無駄な時間が発生してしまい、生産性が大幅にダウン。

時間が無いのに、突然テストが実行できなくなり、原因解明に多大な時間を消費し、それでも問題が分からず、とりあえず「C++Test」の使用を諦めることにした。高額な費用を払ってこの結果とは、正直がっかりした。


仕方が無いので、VC++2010 ExpressEditionでCppUnitを動かす事にした。
しかし、なかなか敷居が高い。


VC++版CppUnitは、VC++6.0ベースで開発されている。しかし、VC++2010では、VC++6.0のプロジェクトを読み込む事ができない。


仕方が無いので、cpptest用のプロジェクトを新規作成し、無事ビルドすることができた。


そして、問題は「TestRunner」である。
VC++版CppUnitは、GUIツール「TestRunner」が含まれている。TestRunnerの有無はとても大きい。


ちなみに、配布されているcppunitでは、MSDNを使用してGUI部を生成している。一方、VC++2010ExpressにはMFCが含まれていないため、ビルドすることができない。

というわけで、VC++2010でも動作可能なTestRunnerを開発しようと考えた。

とりあえず、土日を使えば作れるのではないか?と、安易に考えている。



0 件のコメント:

コメントを投稿