How to run CPPUnit unit tests

Uday picture Uday · Jul 3, 2009 · Viewed 14k times · Source

I have written few c++ Unit tests using CPPUnit.

But I do not understand how to run those.

Is there any tool like Nunit-gui?

Currently I have written and packed tests in a DLL.

When i google i found this http://cppunit.sourceforge.net/doc/lastest/cppunit_cookbook.html

But I am not able to understand how it gets tests from a DLL.

Answer

philant picture philant · Jul 3, 2009

Group your TestCases into TestSuite, write a main(), compile, link against the cppunit library and run the executable from the command-line.

Here is an example of a main function.:

CPPUNIT_TEST_SUITE_REGISTRATION(Test);

int main( int ac, char **av )
{
  //--- Create the event manager and test controller
  CPPUNIT_NS::TestResult controller;

  //--- Add a listener that colllects test result
  CPPUNIT_NS::TestResultCollector result;
  controller.addListener( &result );        

  //--- Add a listener that print dots as test run.
  CPPUNIT_NS::BriefTestProgressListener progress;
  controller.addListener( &progress );      

  //--- Add the top suite to the test runner
  CPPUNIT_NS::TestRunner runner;
  runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() );
  runner.run( controller );

  return result.wasSuccessful() ? 0 : 1;
}

If you really want a GUI, there is QxRunner.