00001 #ifndef CPPUNIT_EXTENSIONS_TESTNAMER_H
00002 #define CPPUNIT_EXTENSIONS_TESTNAMER_H
00003
00004 #include <cppunit/Portability.h>
00005 #include <string>
00006
00007 #if CPPUNIT_HAVE_RTTI
00008 # include <typeinfo>
00009 #endif
00010
00011
00012
00032 #if CPPUNIT_USE_TYPEINFO_NAME
00033 # define CPPUNIT_TESTNAMER_DECL( variableName, FixtureType ) \
00034 CPPUNIT_NS::TestNamer variableName( typeid(FixtureType) )
00035 #else
00036 # define CPPUNIT_TESTNAMER_DECL( variableName, FixtureType ) \
00037 CPPUNIT_NS::TestNamer variableName( std::string(#FixtureType) )
00038 #endif
00039
00040
00041
00042 CPPUNIT_NS_BEGIN
00043
00044
00050 class CPPUNIT_API TestNamer
00051 {
00052 public:
00053 #if CPPUNIT_HAVE_RTTI
00054
00057 TestNamer( const std::type_info &typeInfo );
00058 #endif
00059
00063 TestNamer( const std::string &fixtureName );
00064
00065 virtual ~TestNamer();
00066
00070 virtual std::string getFixtureName() const;
00071
00079 virtual std::string getTestNameFor( const std::string &testMethodName ) const;
00080
00081 protected:
00082 std::string m_fixtureName;
00083 };
00084
00085
00086 CPPUNIT_NS_END
00087
00088 #endif // CPPUNIT_EXTENSIONS_TESTNAMER_H
00089