CppUnit
VisualC++で利用する
準備
- CppUnitプロジェクトホームページよりCppUnitをダウンロードし適当なディレクトリで展開する。
- VisualC++のワークスペースに取り込む
- [ファイル]-[ワークスペースを開く]からCppUnitLibraires.dswを選択
- CppUnitを構築
- [プロジェクト]-[アクティブプロジェクトに設定]でTestPlugInRunnerを選択
- [ビルド]-[バッチビルド]を選択し[ビルド]実行
- 設定する
サンプルの実行
- [ファイル]-[ワークスペース]でCppUnitのexamplesにあるexamples.dswを開く
- [プロジェクト]-[アクティブプロジェクトに設定]でCppUnitTestAppを選択する
- [ビルド]-[バッチビルド]で表示されたダイアログで全てにチェックをつけ、ビルドを実行する
- [ビルド]-[実行CppUnitTestApp.ext]を選択して実行する
VisualC++でUnitTestしてみる
- [ファイル]-[新規作成]-[プロジェクト]で作成したいプロジェクトを選択する
- [プロジェクト]-[設定]-[C/C++]-[C++言語]のRTTIを有効にする
- [プロジェクト]-[設定]-[C/C++]-[コード生成]の[使用するランタイムライブラリ]でマルチスレッド(DLL)を選択する
- [プロジェクト]-[設定]-[リンク]-[インプット]の[オブジェクト/ライブラリモジュール]にcppunit.lib testrunner.lib(デバッグ用はcppunitd.lib testrunnerd.lib)と入力する
もっとすてきな情報が、子河童1.6とCppUnit-1.9.4を使った開発、VC++編にある
テストクラスの雛型
#include <cppunit/extensions/HelperMacros.h> #include <cppunit/ui/text/TestRunner.h> #include <string> #include "テストクラス.h" class テストクラスTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE( テストクラスTest ); CPPUNIT_TEST( テストメソッド ); CPPUNIT_TEST_SUITE_END(); public: テストクラスTest(){} void setUp() { target = new テストクラス; } void tearDown() { delete target; } void テストメソッド() { CPPUNIT_ASSERT( false ); } private: テストクラス *target; }
GUI版TestRunner
GUIでテストを実行する場合、TestRunnerとして既存のプロジェクトにMFC AppWizard(exe)を追加する。その際、ダイアログベースのアプリとして追加し、できたcppのInitInstanceを以下のように書き換える。
#include <cppunit/ui/mfc/TestRunner.h> #include <cppunit/extensions/TestFactoryRegistry.h>
BOOL CTestApp::InitInstance() { AfxEnableControlContainer(); Enable3dControls(); CppUnit::MfcUi::TestRunner runner; runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest()); runner.run(); return FALSE; }
CUI版TestRunner
#include <cppunit/ui/text/TestRunner.h> #include <string> #include "テストクラス.h" int main() { CppUnit::TestSuite *suite = テストクラスTest::suite(); CppUnit::TextUi::TestRunner runner; runner.addTest(suite); bool retcode = runner.run(); return retcode; }
Keyword(s):
References:[] [SideMenu] [CppUnit] [掲示板]