CppUnit

公開:2004-05-25 22:05
更新:2020-02-15 04:36
カテゴリ:psycle wtl,windows,audio,tracker

珍しくご質問メールが来ましたので返事がてらここに記述します。

ちょっと質問がありますがよろしいでしょうか?

自分もWTL環境にCPPUNIT(1.8.0 or 1.9.XX)を
組み込みたいのですがどうしてもうまくいきません。


先ず、GUI版TestRunnerですが、MFCベースなのでそのままでは使用できません。
おそらくソースをWTLにPortする必要があるでしょう。
(時間があればやりたいですが、Psycleのカスタマイズに思いのほか時間がかかっているので手を出さないようにしています。)

http://c2.com/cgi/wiki?CppUnit に下記のような書き込みも発見しているので、

I've got a port of the MS C++ GUI interface to WTL, if anyone is interested. Email me at mailto:mwa@digital-healthcare.com. -- Matthew Adams
コンタクトを取ってみるのはいかかでしょうか?

私は上記理由によりテキスト版TestRunnerを利用して、VC.Netのデバッグ出力にテスト結果を出力しています。

しかし、コンソールアプリなら問題ないのですがWindowsアプリの場合はcoutが使えませんのでそのままではデバッグ出力に出ません。CompilerOutputterを使用しても出ませんでした。
そこで下記URLよりdoutなるostreamを拝借し、
http://vision.kuee.kyoto-u.ac.jp/~nob/doc/win32/win32.html#doc1_42
(簡単に言うとこれはOuputDebugStringをostreamにラップしたものです。)

これを、

dstream dout;
CppUnit::TextUi::TestRunner runner;
runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
runner.setOutputter(CppUnit::CompilerOutputter::defaultOutputter(&runner.result(),dout));
こんな風にセットして使用してます。

で、どのようにテストを呼び出すかですが、Debugビルドの場合テストメニューを作成して、メニュー選択のタイミングでテストを実行するようにしました。