Probably the simplest tool for this purpose is MiniCppUnit -- no install needed, 2 source files, ~ 500 lines and all in cross platform C++. This tool was in fact generated as a response to quite how heavyweight the more familiar CppUnit is.
The portability of the framework is extremely useful when code is being developed for a non-Windows platform, but you would like the platform independent body of the code in a unified Windows build for monitoring, as well as on the other platform. The one downside as it comes out the box, though, is that it doesn't build under C++/CLR due to its use of native C++ exception behaviour (i.e. uses the fact that in C++ you can throw anything). This wrinkle is simply fixed, however.
Guarded by an appropriate
#ifdef/#else/#endif, do the following
incoporate the .Net framework with
provide an alternative definition of the TestFailedException class:-
public ref class TestFailedException : public System::ApplicationException
System::Exception^ rather than
throw gcnew TestFailedException();
rather than just
TestFailedException(); when building as C++/CLI .