#ifndef TRACKEDTESTCASE_H #define TRACKEDTESTCASE_H #include class Tracker { public: virtual ~Tracker() {} virtual void onConstructor() {} virtual void onDestructor() {} virtual void onSetUp() {} virtual void onTearDown() {} virtual void onTest() {}; }; class TrackedTestCase : public CPPUNIT_NS::TestCase { public: TrackedTestCase(); virtual ~TrackedTestCase(); virtual void setUp(); virtual void tearDown(); void test(); static void setTracker( Tracker *tracker ); static void removeTracker(); private: TrackedTestCase( const TrackedTestCase © ); void operator =( const TrackedTestCase © ); private: static Tracker *ms_tracker; }; #endif // TRACKEDTESTCASE_H