More tweaks to summary format

This commit is contained in:
Phil Nash 2014-07-03 19:06:59 +01:00
parent 52e1e7414a
commit 94a1acf766

View File

@ -20,8 +20,7 @@ namespace Catch {
struct ConsoleReporter : StreamingReporterBase { struct ConsoleReporter : StreamingReporterBase {
ConsoleReporter( ReporterConfig const& _config ) ConsoleReporter( ReporterConfig const& _config )
: StreamingReporterBase( _config ), : StreamingReporterBase( _config ),
m_headerPrinted( false ), m_headerPrinted( false )
m_atLeastOneTestCasePrinted( false )
{} {}
virtual ~ConsoleReporter(); virtual ~ConsoleReporter();
@ -103,9 +102,6 @@ namespace Catch {
virtual void testRunEnded( TestRunStats const& _testRunStats ) { virtual void testRunEnded( TestRunStats const& _testRunStats ) {
printTotalsDivider( _testRunStats.totals ); printTotalsDivider( _testRunStats.totals );
printTotals( _testRunStats.totals ); printTotals( _testRunStats.totals );
if( m_atLeastOneTestCasePrinted ||
( _testRunStats.totals.assertions.total() == 0 && _testRunStats.totals.testCases.total() > 0 ) )
printTotalsDivider( _testRunStats.totals );
stream << std::endl; stream << std::endl;
StreamingReporterBase::testRunEnded( _testRunStats ); StreamingReporterBase::testRunEnded( _testRunStats );
} }
@ -257,7 +253,6 @@ namespace Catch {
printTestCaseAndSectionHeader(); printTestCaseAndSectionHeader();
m_headerPrinted = true; m_headerPrinted = true;
} }
m_atLeastOneTestCasePrinted = true;
} }
void lazyPrintRunInfo() { void lazyPrintRunInfo() {
stream << "\n" << getLineOfChars<'~'>() << "\n"; stream << "\n" << getLineOfChars<'~'>() << "\n";
@ -334,13 +329,16 @@ namespace Catch {
stream << Colour( Colour::Warning ) << "No tests ran\n"; stream << Colour( Colour::Warning ) << "No tests ran\n";
} }
else if( totals.assertions.total() == 0 ) { else if( totals.assertions.total() == 0 ) {
printCounts( "test case", totals.testCases, cols ); stream << "test cases: ";
printCounts( totals.testCases, cols );
stream << "assertions: "; stream << "assertions: ";
stream << Colour( Colour::Warning ) << "- none -\n"; stream << Colour( Colour::Warning ) << "- none -\n";
} }
else if( totals.assertions.failed + totals.assertions.failedButOk ) { else if( totals.assertions.failed + totals.assertions.failedButOk ) {
printCounts( "test case", totals.testCases, cols ); stream << "test cases: ";
printCounts( "assertion", totals.assertions, cols ); printCounts( totals.testCases, cols );
stream << "assertions: ";
printCounts( totals.assertions, cols );
} }
else { else {
stream << Colour( Colour::ResultSuccess ) << "All tests passed"; stream << Colour( Colour::ResultSuccess ) << "All tests passed";
@ -350,10 +348,8 @@ namespace Catch {
<< "\n"; << "\n";
} }
} }
void printCounts( std::string const& label, Counts const& counts, int cols ) { void printCounts( Counts const& counts, int cols ) {
stream << label << "s: "; stream << Colour( counts.passed > 0 ? Colour::Success : Colour::LightGrey )
stream << Colour( counts.passed > 0 ? Colour::ResultSuccess : Colour::LightGrey )
<< std::setw( cols ) << counts.passed << " passed"; << std::setw( cols ) << counts.passed << " passed";
stream << Colour( Colour::LightGrey ) << " | "; stream << Colour( Colour::LightGrey ) << " | ";
@ -365,8 +361,8 @@ namespace Catch {
stream << Colour( counts.failedButOk > 0 ? Colour::ResultExpectedFailure : Colour::LightGrey ) stream << Colour( counts.failedButOk > 0 ? Colour::ResultExpectedFailure : Colour::LightGrey )
<< std::setw( cols ) << counts.failedButOk << " failed as expected"; << std::setw( cols ) << counts.failedButOk << " failed as expected";
} }
stream << Colour( Colour::LightGrey ) << " | "; stream << Colour( Colour::LightGrey ) << " | "
stream << "total: " << counts.total() << "\n"; << "total: " << counts.total() << "\n";
} }
static std::size_t makeRatio( std::size_t number, std::size_t total ) { static std::size_t makeRatio( std::size_t number, std::size_t total ) {
@ -416,7 +412,6 @@ namespace Catch {
private: private:
bool m_headerPrinted; bool m_headerPrinted;
bool m_atLeastOneTestCasePrinted;
}; };
INTERNAL_CATCH_REGISTER_REPORTER( "console", ConsoleReporter ) INTERNAL_CATCH_REGISTER_REPORTER( "console", ConsoleReporter )