00001 #ifndef CPPUNIT_TESTRUNNER_H
00002 #define CPPUNIT_TESTRUNNER_H
00003
00004 #include <cppunit/TestSuite.h>
00005 #include <string>
00006
00007 CPPUNIT_NS_BEGIN
00008
00009
00010 class Test;
00011 class TestResult;
00012
00013
00072 class CPPUNIT_API TestRunner
00073 {
00074 public:
00077 TestRunner( );
00078
00080 virtual ~TestRunner();
00081
00085 virtual void addTest( Test *test );
00086
00094 virtual void run( TestResult &controller,
00095 const std::string &testPath = "" );
00096
00097 protected:
00100 class CPPUNIT_API WrappingSuite : public TestSuite
00101 {
00102 public:
00103 WrappingSuite( const std::string &name = "All Tests" );
00104
00105 int getChildTestCount() const;
00106
00107 std::string getName() const;
00108
00109 void run( TestResult *result );
00110
00111 protected:
00112 Test *doGetChildTestAt( int index ) const;
00113
00114 bool hasOnlyOneTest() const;
00115
00116 Test *getUniqueChildTest() const;
00117 };
00118
00119 protected:
00120 WrappingSuite *m_suite;
00121
00122 private:
00124 TestRunner( const TestRunner © );
00125
00127 void operator =( const TestRunner © );
00128
00129 private:
00130 };
00131
00132
00133 CPPUNIT_NS_END
00134
00135 #endif // CPPUNIT_TESTRUNNER_H