1 #include <cppunit/Exception.h>
2 #include <cppunit/SourceLine.h>
3 #include <cppunit/TestFailure.h>
4 #include <cppunit/TextOutputter.h>
5 #include <cppunit/TestResultCollector.h>
11 TextOutputter::TextOutputter( TestResultCollector *result,
19 TextOutputter::~TextOutputter()
25 TextOutputter::write()
35 TextOutputter::printFailures()
37 TestResultCollector::TestFailures::const_iterator itFailure = m_result->failures().begin();
38 int failureNumber = 1;
39 while ( itFailure != m_result->failures().end() )
42 printFailure( *itFailure++, failureNumber++ );
48 TextOutputter::printFailure( TestFailure *failure,
51 printFailureListMark( failureNumber );
53 printFailureTestName( failure );
55 printFailureType( failure );
57 printFailureLocation( failure->sourceLine() );
59 printFailureDetail( failure->thrownException() );
65 TextOutputter::printFailureListMark( int failureNumber )
67 m_stream << failureNumber << ")";
72 TextOutputter::printFailureTestName( TestFailure *failure )
74 m_stream << "test: " << failure->failedTestName();
79 TextOutputter::printFailureType( TestFailure *failure )
82 << (failure->isError() ? "E" : "F")
88 TextOutputter::printFailureLocation( SourceLine sourceLine )
90 if ( !sourceLine.isValid() )
93 m_stream << "line: " << sourceLine.lineNumber()
94 << ' ' << sourceLine.fileName();
99 TextOutputter::printFailureDetail( Exception *thrownException )
101 m_stream << thrownException->message().shortDescription() << "\n";
102 m_stream << thrownException->message().details();
107 TextOutputter::printHeader()
109 if ( m_result->wasSuccessful() )
110 m_stream << "\nOK (" << m_result->runTests () << " tests)\n" ;
114 printFailureWarning();
121 TextOutputter::printFailureWarning()
123 m_stream << "!!!FAILURES!!!\n";
128 TextOutputter::printStatistics()
130 m_stream << "Test Results:\n";
132 m_stream << "Run: " << m_result->runTests()
133 << " Failures: " << m_result->testFailures()
134 << " Errors: " << m_result->testErrors()