[Cppunit-devel] ExtendedTextTestRunner
Brought to you by:
blep
|
From: Philippe F. <P....@OB...> - 2003-01-17 10:20:08
|
Hi,
For my personal need, I have extended the CppUnit::TextUi::TestRunner. The
extension is very simple, the goal for me was just to be able to provide my
own outputter and progress listener.
See:
--- ExtendedTestRunner.h
namespace CppUnit {
class ExtendedTestRunner : public TextUi::TestRunner {
public:
ExtendedTestRunner( Outputter *outputter =NULL, TestListener *
progressListener =NULL)
: TextUi::TestRunner( outputter), m_progressListener(
progressListener) {
if (m_progressListener == NULL) {
m_progressListener = new TextTestProgressListener();
}
}
virtual bool runTest( Test *test,
bool doPrintProgress );
virtual void setTestProgressListener( TestListener * listener) {
delete m_progressListener;
m_progressListener = listener;
}
virtual void setTestResultCollector( TestResultCollector * result) {
delete m_result;
m_result = result;
}
protected:
TestListener * m_progressListener;
};
}; // CppUnit
------- ExtendedTestRunner.cpp
namespace CppUnit {
bool
ExtendedTestRunner::runTest( Test *test,
bool doPrintProgress )
{
if ( doPrintProgress )
m_eventManager->addListener( m_progressListener );
test->run( m_eventManager );
if ( doPrintProgress )
m_eventManager->removeListener( m_progressListener );
return m_result->wasSuccessful();
}
};
------------------------------
I don't remember if adding a virtual method and a new protected member
breaks binary compatbility. If not, I suggest to add my method directly the
TextUi::TestRunner . Else, I would be happy to see this small class included
directly into CppUnit.
I have other personal improvements, but I won't talk about them until they
are ready.
regards,
Philippe
|