Added a delta method to Totals that tracks new passed/ failures
This fixes issue with test group results
This commit is contained in:
parent
9fa9d4279c
commit
ab4b36862d
@ -111,7 +111,7 @@ namespace Catch {
|
||||
m_reporter->StartGroup( "test case run" );
|
||||
m_currentResult.setLineInfo( m_runningTest->getTestCaseInfo().getLineInfo() );
|
||||
runCurrentTest( redirectedCout, redirectedCerr );
|
||||
m_reporter->EndGroup( "test case run", m_totals - prevTotals );
|
||||
m_reporter->EndGroup( "test case run", m_totals.delta( prevTotals ) );
|
||||
}
|
||||
while( m_runningTest->hasUntestedSections() );
|
||||
}
|
||||
@ -120,12 +120,9 @@ namespace Catch {
|
||||
delete m_runningTest;
|
||||
m_runningTest = NULL;
|
||||
|
||||
if( m_totals.assertions.failed > prevTotals.assertions.failed )
|
||||
++m_totals.testCases.failed;
|
||||
else
|
||||
++m_totals.testCases.passed;
|
||||
|
||||
m_reporter->EndTestCase( testInfo, m_totals - prevTotals, redirectedCout, redirectedCerr );
|
||||
Totals deltaTotals = m_totals.delta( prevTotals );
|
||||
m_totals.testCases += deltaTotals.testCases;
|
||||
m_reporter->EndTestCase( testInfo, deltaTotals, redirectedCout, redirectedCerr );
|
||||
}
|
||||
|
||||
virtual Totals getTotals() const {
|
||||
|
@ -19,6 +19,11 @@ namespace Catch {
|
||||
diff.failed = failed - other.failed;
|
||||
return diff;
|
||||
}
|
||||
Counts& operator += ( const Counts& other ) {
|
||||
passed += other.passed;
|
||||
failed += other.failed;
|
||||
return *this;
|
||||
}
|
||||
|
||||
std::size_t total() const {
|
||||
return passed + failed;
|
||||
@ -36,6 +41,15 @@ namespace Catch {
|
||||
diff.testCases = testCases - other.testCases;
|
||||
return diff;
|
||||
}
|
||||
|
||||
Totals delta( const Totals& prevTotals ) const {
|
||||
Totals diff = *this - prevTotals;
|
||||
if( diff.assertions.failed > 0 )
|
||||
++diff.testCases.failed;
|
||||
else
|
||||
++diff.testCases.passed;
|
||||
return diff;
|
||||
}
|
||||
|
||||
Counts assertions;
|
||||
Counts testCases;
|
||||
|
Loading…
Reference in New Issue
Block a user