CppUnit - C++ port of JUnit Code
Brought to you by:
blep
* CppUnit:
- Update MfcTestRunner to use TestPath to store test in the registry
- Provide a mean for the user to catch 'custom' exception in TestCase::run
(exception that do not subclass std::exception, such as MFC CException, or
RogueWave RWXMsg).
- [DONE] Custom Test macro helper
- Hook for XmlOutputter, to allow user to add extra information to the XmlDocument
(test & doc level).
- Allow test plug-in to 'hook' the XmlOutputter when used.
- TextUi::TestRunner should use CppUnit::TestRunner as a base class
- Modify MfcUi::TestRunner to expose TestResult (which allow specific TestListener
for global initialization).
- [DONE]Make Exception message more flexible: introduce a Message object which contains:
- a short description ('assertion failed', 'equality assertion failed'...)
- detail strings: "Expected : 3", "Actual : 5"...
=> this provide a structured way to specify failure details, and let the ouputter
(or ui) format them for display.
- Extends CompilerOutputter to a generic text outputter that can use a format string
to display both the location of the failure and the message.
- STL orthodox template for container elements.
- Memory leak tracking: setUp/tearDown should be leak safe if no failure occured.
* UnitTest
- add tests for XmlOutputter::setStyleSheet (current assertion macro strip <?...> when
testing )
- add tests for TestRunner, TextUi::TestRunner, CompilerOutputter.
- add tests for test plug-in
* VC++ TestRunner:
- Make it possible to specify the registry path where settings are stored.
Current method use the path defined in the CWinApp. This does not work
for console application
- Add "details" field to show detail of the selected failed test:
- suite and test name,
- failure message. If possible separate "was" and "expected" in the
forthcoming assertEquals() to make comparison easier,
- source file location.
* BugFix: CompilerOutputter::wrap(), bug when wrapping empty line in the middle
of a text (they disappear).
* Documentation:
CookBook:
- how to create simple test cases (with CppUnit namespace)
- test case using only CPPUINT_ASSERT
- test case using CPPUNIT_ASSERT_EQUAL
- advanced assertions with the CPPUNIT_ASSERT_MESSAGE
- Helper Macros for convenience
- Creating a suite
- Composing a suite from more suites (i.e. compose tests for n modules to
form a big test for the whole program)
- customizing output using an user defined TestListener
- how to write the TestListener (subclass of TestListener)
- how to hook it in
- how to use the GUI
- MSVC++ special stuff
- other custmization stuff I haven't understood yet
CppUnit: architecture overview.