渋川@河童プロジェクトです。
> 私は、ユニットテストは、コンパイラ延長として考えてい
> ます。
ということで、Visual C++ 6.0とCppUnit 1.8.0で、コンパイル作業と一緒にテ
ストをしてしまう方法の紹介です。どちらも最新版にしても問題ないと思います
が、検証していないので、これでご勘弁を。
F7キーでビルドして、コンパイルが通ってテストが失敗したら、F4キーで即座に
失敗したASSERTメソッドにジャンプできます。これが地味で以外に便利です。
ユニットテスト用のプロジェクトを開き、プロジェクト→設定→ビルド後の処理
の所に、テストプログラムの実行ファイル名をフルパスで書きます。相対アドレ
スだとどこが起点なのかちょっと分からなかったので、念のためフルパスで。パ
ス名ミスると変なプロセスが上がって、ビルドが終了しなくなるので、そうなっ
たらタスクマネージャで妖しいプロセスを落として下さい。Visual Studioを落
としてもダメです。
Outputterとして、CompilerOutputter、出力先をstd::cerrにします。子河童で
生成したmainなら、実行ファイル名の後ろに--compiler --errと付ければOKです
ね。コード参照。自分で書くときには以下のように。
#include <iostream>
#include <cppunit/ui/text/TestRunner.h>
#include <cppunit/CompilerOutputter.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
int main(int argc, char* argv[]) {
CppUnit::TextUi::TestRunner runner;
runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
CppUnit::Outputter* outputter =
new CppUnit::CompilerOutputter(&runner.result(),*stream);
std::ostream* stream = target ? &std::cerr : &std::cout;
runner.setOutputter(outputter);
return runner.run() ? 0 : 1;
}
GUIのMFCテストランナーでも、CppUnit付属のプラグインをVisual Studioに入れ
ると、失敗したテストをダブルクリックしてコードジャンプができます。詳しく
はこちらをご覧下さい。
http://www.unittest.org/document/archive/cpp/cppunit/vcinstall.html
http://www.unittest.org/document/archive/cpp/cppunit/buildsetup.html
NUnitのVS.netプラグインも見つけたんですが、VS.netはまだ持っていないので、
同じぐらい便利にできるかはわかりません。
http://sourceforge.net/projects/nunitaddin/
-----
東京工業大学 電気電子工学科
_/_/_/ しぶかわよしき JA6HFA/1 yoshiki@....jp
_/ http://www.shibu.jp http://www.unittest.org