Overview
The heart of CppUnit 2 is composed mostly of two components: - the TestInfo per thread singleton that tracks failed assertions and log event during a TestCase execution. - TestCase, a base class for runnable tests
TestSuite are merely exist to organize tests and are no longer runnable (though, it the test runner can easily executed all the tests of a given test suite).
TestInfo is at the core of CppUnit, in fact you can implements your own 'TestCase' component while still using using all the assertions. TestInfo provides a simple API to implement both aborting and non-aborting assertions with rich failure diagnostic (e.g. actual JSON data instead of a simple string).