00001 #ifndef CPPUNIT_TESTSUITE_H // -*- C++ -*-
00002 #define CPPUNIT_TESTSUITE_H
00003
00004 #include <cppunit/Portability.h>
00005
00006 #if CPPUNIT_NEED_DLL_DECL
00007 #pragma warning( push )
00008 #pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z
00009 #endif
00010
00011 #include <cppunit/Test.h>
00012 #include <vector>
00013 #include <string>
00014
00015 namespace CppUnit {
00016
00017 class TestResult;
00018
00019 #if CPPUNIT_NEED_DLL_DECL
00020 template class CPPUNIT_API std::vector<Test *>;
00021 #endif
00022
00023
00044 class CPPUNIT_API TestSuite : public Test
00045 {
00046 public:
00047 TestSuite( std::string name = "" );
00048 ~TestSuite();
00049
00050 void run( TestResult *result );
00051 int countTestCases() const;
00052 std::string getName() const;
00053 std::string toString() const;
00054
00055 void addTest( Test *test );
00056 const std::vector<Test *> &getTests() const;
00057
00058 virtual void deleteContents();
00059
00060 private:
00061 TestSuite( const TestSuite &other );
00062 TestSuite &operator =( const TestSuite &other );
00063
00064 private:
00065 std::vector<Test *> m_tests;
00066 const std::string m_name;
00067 };
00068
00069
00070 }
00071
00072
00073 #if CPPUNIT_NEED_DLL_DECL
00074 #pragma warning( pop )
00075 #endif
00076
00077 #endif // CPPUNIT_TESTSUITE_H