Skip to content
Snippets Groups Projects
Commit f717d7a1 authored by Jan Trávníček's avatar Jan Trávníček
Browse files

Better test result output

parent c7514922
No related branches found
No related tags found
No related merge requests found
...@@ -2,10 +2,92 @@ ...@@ -2,10 +2,92 @@
#include <cppunit/CompilerOutputter.h> #include <cppunit/CompilerOutputter.h>
#include <cppunit/extensions/TestFactoryRegistry.h> #include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/ui/text/TestRunner.h> #include <cppunit/ui/text/TestRunner.h>
#include <cppunit/TestResultCollector.h>
#include <cppunit/TestResult.h>
   
#include <cppunit/Test.h>
#include <cppunit/TestFailure.h>
#include <cppunit/portability/Stream.h>
#include <cppunit/TestListener.h>
CPPUNIT_NS_BEGIN
class CPPUNIT_API TestProgressListener : public TestListener
{
public:
TestProgressListener();
virtual ~TestProgressListener();
void startTest( Test *test );
void addFailure( const TestFailure &failure );
void endTest( Test *test );
int getResult() const;
private:
TestProgressListener( const TestProgressListener &copy );
void operator =( const TestProgressListener &copy );
private:
int m_Result;
bool m_lastTestFailed;
};
TestProgressListener::TestProgressListener() : m_Result( 0 ), m_lastTestFailed( false )
{
}
TestProgressListener::~TestProgressListener()
{
}
void TestProgressListener::startTest( Test * test )
{
stdCOut() << test->getName() << ":\n";
stdCOut().flush();
m_lastTestFailed = false;
}
void TestProgressListener::addFailure( const TestFailure &failure )
{
stdCOut() << " : " << (failure.isError() ? "error" : "assertion");
m_lastTestFailed = true;
m_Result++;
}
void TestProgressListener::endTest( Test * test)
{
stdCOut() << "Result (" << test->getName() << "):";
stdCOut().flush();
if ( !m_lastTestFailed )
stdCOut() << " : OK";
else
stdCOut() << " : Fail";
stdCOut() << "\n\n";
}
int TestProgressListener::getResult() const {
return m_Result;
}
CPPUNIT_NS_END
   
int main(int , char*[]) int main(int , char*[])
{ {
CppUnit::TestResult controller;
CppUnit::TestResultCollector result;
controller.addListener( &result );
CppUnit::TestProgressListener progressListener;
controller.addListener( &progressListener );
// Get the top level suite from the registry // Get the top level suite from the registry
CppUnit::Test *suite = CppUnit::TestFactoryRegistry::getRegistry().makeTest(); CppUnit::Test *suite = CppUnit::TestFactoryRegistry::getRegistry().makeTest();
   
...@@ -17,8 +99,7 @@ int main(int , char*[]) ...@@ -17,8 +99,7 @@ int main(int , char*[])
runner.setOutputter( new CppUnit::CompilerOutputter( &runner.result(), runner.setOutputter( new CppUnit::CompilerOutputter( &runner.result(),
std::cerr ) ); std::cerr ) );
// Run the tests. // Run the tests.
bool wasSucessful = runner.run(); runner.run( controller );
   
// Return error code 1 if the one of test failed. return progressListener.getResult();
return wasSucessful ? 0 : 1;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment