summaryrefslogtreecommitdiff
path: root/include/cppunit/ui/mfc/MfcTestRunner.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/cppunit/ui/mfc/MfcTestRunner.h')
-rw-r--r--include/cppunit/ui/mfc/MfcTestRunner.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/include/cppunit/ui/mfc/MfcTestRunner.h b/include/cppunit/ui/mfc/MfcTestRunner.h
new file mode 100644
index 0000000..6a5f7b7
--- /dev/null
+++ b/include/cppunit/ui/mfc/MfcTestRunner.h
@@ -0,0 +1,76 @@
+#ifndef CPPUNITUI_MFC_MFCTESTRUNNER_H
+#define CPPUNITUI_MFC_MFCTESTRUNNER_H
+
+#if _MSC_VER >= 1000
+#pragma once
+#endif // _MSC_VER >= 1000
+
+#include <cppunit/Portability.h>
+#include <cppunit/portability/CppUnitVector.h>
+
+/* Refer to MSDN documentation to know how to write and use MFC extension DLL:
+ mk:@MSITStore:h:\DevStudio\MSDN\98VSa\1036\vcmfc.chm::/html/_mfcnotes_tn033.htm#_mfcnotes_how_to_write_an_mfc_extension_dll
+
+ This can be found in the index with "mfc extension"
+ The basic:
+ Using:
+ - your application must use MFC DLL
+ - memory allocation is done using the same heap
+ - you must define the symbol _AFX_DLL
+
+ Building:
+ - you must define the symbol _AFX_DLL and _AFX_EXT
+ - export class using AFX_EXT_CLASS
+ */
+
+CPPUNIT_NS_BEGIN
+
+ class Test;
+ class TestSuite;
+
+
+/*! \brief MFC test runner.
+ * \ingroup ExecutingTest
+ *
+ * Use this to launch the MFC TestRunner. Usually called from you CWinApp subclass:
+ *
+ * \code
+ * #include <cppunit/ui/mfc/MfcTestRunner.h>
+ * #include <cppunit/extensions/TestFactoryRegistry.h>
+ *
+ * void
+ * CHostAppApp::RunUnitTests()
+ * {
+ * CppUnit::MfcTestRunner runner;
+ * runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() );
+ *
+ * runner.run();
+ * }
+ * \endcode
+ * \see CppUnit::TextTestRunner, CppUnit::TestFactoryRegistry.
+ */
+class AFX_EXT_CLASS MfcTestRunner
+{
+public:
+ MfcTestRunner();
+ virtual ~MfcTestRunner();
+
+ void run();
+
+ void addTest( Test *test );
+
+ void addTests( const CppUnitVector<Test *> &tests );
+
+protected:
+ Test *getRootTest();
+
+ TestSuite *m_suite;
+
+ typedef CppUnitVector<Test *> Tests;
+ Tests m_tests;
+};
+
+
+CPPUNIT_NS_END
+
+#endif // CPPUNITUI_MFC_MFCTESTRUNNER_H \ No newline at end of file