#pragma section-numbers off
= CppUnit Wiki =
Welcome! to CppUnit Wiki.

Interesting starting points:

 * RecentChanges: see where people are currently working
 * HelpForBeginners: to get you going. Specifically, help on wiki, not on CppUnit
 * WikiSandBox: feel free to change this page and experiment with editing
 * FindPage: search or browse the database in various ways...

= What is CppUnit? =
 CppUnit is a C++ unit testing framework. It started its life as a port of
 [http://www.junit.org JUnit] to C++ by Michael Feathers. For a quick tour of
 unit testing with CppUnit, see
 [http://cppunit.sourceforge.net/doc/lastest/cppunit_cookbook.html the Cookbook]
 in the latest documentation. For an introduction to unit testing, see
 Wiki:UnitTest, Wiki:ProgrammerTest, and Wiki:CodeUnitTestFirst at the
 [wiki:Wiki:FrontPage C2.com wiki].

Features:

 * XML output with hooks for additional data
 * Compiler-like text output to integrate with an IDE
 * Helper macros for easier test suite declaration
 * Hierarchical test fixture support
 * Test registry to reduce recompilation need
 * Test plug-in for faster compile/test cycle (self testable dynamic library)
 * Protector to encapsulate test execution (allow capture of exception not derived from std::exception)
 * MfcTestRunner
 * QT based graphic test runner

Features available in the patch section of SourceForgeProject:

 * CursesTestRunner
 * WxWidgetsTestRunner (formerly: WxWindowsTestRunner)

= Online documentation =
 * [http://cppunit.sourceforge.net/doc/lastest/index.html CppUnit 1.10.2]

= Other documentation =
 * BuildingCppUnit1 (platform-specific build instructions contributed by users)
 * [http://sourceforge.net/forum/forum.php?forum_id=37108 Discussion Forums: Help]
 * [http://sourceforge.net/forum/forum.php?forum_id=37107 Discussion Forums: Open Discussion]
 * FrequentlyAskedQuestions - Frequently Asked Questions (answers always needed!)

 User documentation for CppUnit:
 * [http://stud.fbi.fh-darmstadt.de/~apos/de/softwaretechnik/cppunit/docs/CppUnit_GUI_under_VC6_0.html Tips on setting up CppUnit with VC++ 6] Images are in German, but helpful to non-German speakers anyway.
 * Simplified Chinese Document on CppUnit Source Code Analysis [http://www.polyrandom.com/content/view/16//]
= Download =
 It is recommended to download the latest stable version 1.10.2. You can find it
 on the [https://sourceforge.net/project/showfiles.php?group_id=11795 SourceForge download page]. Notice: development snapshots have been
 moved from the web page to the download page for better visibility and easier
 access.

 Link to CppUnit 1.10.2
 [http://prdownloads.sourceforge.net/cppunit/cppunit-1.10.2.tar.gz?download source],
 [http://prdownloads.sourceforge.net/cppunit/cppunit-docs-1.10.2.tar.gz?download documentation],
 and [http://prdownloads.sourceforge.net/cppunit/cppunit-cvs-1.10.2.tar.gz?download a cvs export of the source]
 tarballs.

 Link to the CVS [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/cppunit/cppunit/NEWS?rev=HEAD&content-type=text/plain What's News] file.



= CVS =
 You can get the most recent source from CVS. See instructions in the CVS tab of
 the SourceForgeProject page about accessing the CVS repository.

 Alternatively, if you are behind a strict firewall, you can download the
 [http://cvs.sourceforge.net/cvstarballs/cppunit-cvsroot.tar.bz2 nightly backup tarball]
 of the CVS repository (about 1.2Mo). You'll need to install it as a local CVS
 repository to use it.

= The Future =

 A set of documents (features, todo...) concerning CppUnit 2 can be found at the
 following url: http://cppunit.sourceforge.net/cppunit2/

 CppUnit2 discussions.

= This wiki =
 Backups of this wiki are done on a nightly basis (around midnight UTC) and can be
 downloaded from [http://cppunit.sourceforge.net/backup/]. ''It appears the backups are out-of-date...''

 You can find a small document about installing MoinMoin wiki on SourceForge on
 [http://gaiacrtn.free.fr/ Baptiste Lepilleur's web page].
 See MoinMoin:SourceForge for additional information and tips.

 This wiki is under attack by spammers, trying to increase their page ranking on search engines.
 Some are a little annoying, adding links to the end of the page. Some are more annoying, creating
 new pages with nothing but spam content. Some are destructive, replacing whole pages with spam.

 This wiki runs version 1.0 of MoinMoin, a wiki engine written in Python. This version has little
 protection from spammers. The most recent version, 1.3, has several features to fight spammers:
 * The Revert Action - returns a page to a previous (pre-spam) version
 * The Delete Action - deletes pages that are nothing but spam
 * Access Control Lists - restricts the actions that users can take (not recommended for public wikis)
 * An Anti-Spam Feature - blocks certain words, URLs, etc., when the spammer attempts to add them to a page.

 Until recently, it was difficult or impossible to run the latest version of MoinMoin on the
 SourceForge servers. However, on 12-05-2004 they upgraded their web servers, including an upgrade
 to an up-to-date version of Python. See MoinMoin:SourceForge for details.

 Until this wiki is updated, you might want to save local copies of any big changes, in case a
 destructive spammer comes along. Since most spammers target this page, a backup is available at
 FrontPageBackup. See SpamStrategy for other tips

= IRC =
 * irc://irc.freenode.org/cppunit/, An IRC channel to discuss CppUnit and get real-time help building testing suites with the framework

= Related projects =
 * [http://mockpp.sourceforge.net/ Mock Objects for C++] A C++ framework to create mock objects.
 * [http://sourceforge.jp/projects/cuppa/ CUPPA project] Suite generation, XSL for test result presentations...
 * [http://cxxtest.sourceforge.net/ CxxTest] A C++ unit testing framework for platform with weak C++ support.

= Unit Testing Links =
 * [http://www.junit.org/ JUnit] The Java unit testing framework. Also contains a lot of very interesting articles relating to unit testing.
 * [http://www.mockobjects.com/ Mock Objects] Mock Objects are the key to real unit testing.
 * [http://www.xprogramming.com/ Ron Jeffries's web about Extreme Programming] Lists almost all unit testing frameworks for many languages.
 * [http://www.design-up.com/ Design Up] (French) A French website about extreme programming. Has excellent summaries about the XP method, OO design principles, and testing techniques.
 * [http://www.codeproject.com/gen/design/autp5.asp Unit Test Patterns] An article that presents common unit testing patterns.
